程序设计语言C习题集含答案.docx
- 文档编号:17279447
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:49
- 大小:31.84KB
程序设计语言C习题集含答案.docx
《程序设计语言C习题集含答案.docx》由会员分享,可在线阅读,更多相关《程序设计语言C习题集含答案.docx(49页珍藏版)》请在冰点文库上搜索。
程序设计语言C习题集含答案
《程序设计语言C》课程习题集
一、单选题
1.在C语言中,合法的长整型常数是
A)OLB)4962710C)324562&D)216D
2.以下有4组用户标识符,其中合法的一组是
A)ForB)4dC)f2_G3D)WORD
3.以下选项中合法的字符常量是
A)"B"B)'\010'C)68D)D
4.以下程序的输出结果是
main()
{inta=3;
printf("%d\n",a+(a-=a*a));
}
A)-6B)12C)0D)-12
5.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为
A)0B)1C)2D)3
6.t为int类型,进人下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是
A)循环控制表达式的值为0B)循环控制表达式的值为1
C)循环控制表达式不合法D)以上说法都不对
7.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A)地址传递B)单向值传递
C)由实参传给形参,再由形参传回实参D)传递方式由用户指定
8.以下程序的输出结果是
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258B)741C)852D)369
9.以下选项中,不能正确赋值的是
A)chars1[10];s1="Ctest";B)chars2[]={'C','t','e','s','t'};
C)chars3[20]="Ctest";D)char*s4="Ctest\n";
10.以下程序的输出结果是
unionmyun
{struct
{intx,y,z;}u;
intk;
}a;
main()
{a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);
}
A)4B)5C)6D)0
11.以下叙述正确的是
A) C语言比其他语言高级
B) C语言可以不用编译就能被计算机识别执行
C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D) C语言出现的最晚、具有其他语言的一切优点
12.C语言中用于结构化程序设计的三种基本结构是
A)顺序结构、选择结构、循环结构B) if、switch、break
C) for、while、do-whileD) if、for、continue
13.下列关于C语言用户标识符的叙述中正确的是
A) 用户标识符中可以出现下划线和中划线(减号)
B) 用户标识符中不可以出现中划线,但可以出现下划线
C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
14.有以下程序段
int m=0,n=0; char c=’a’;
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
A) 10,A,10B) 10,a,10C) 10,a,0D) 10,A,0
15.有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1:
printf("%d",i);
case 2:
printf("%d",i);
default:
printf("%d",i);
}}
执行后输出的结果是
A) 011122B) 012C) 012020D) 120
16.有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出的结果是
A) 9,2B) 10,2C) 9,1D) 10,1
17.有以下程序
void f(int x,int y)
{ int t;
if(x } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出的结果是 A) 3,4,5B) 5,3,4C) 5,4,3D) 4,3,5 18.有以下程序 main() { char *s[]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); } 执行后输出结果是 A) n,twoB) t,oneC) w,oneD) o,two 19.有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } } 执行后输出结果是 A) 4 5 6B) 2 5 8C) 3 6 9D) 7 8 9 20.设有如下说明 typedef struct { int n; char c; double x;}STD; 则以下选项中 ,能正确定义结构体数组并赋初值的语句是 A) STD tt[2]={{1,’A’,62},{2,’B’,75}}; B) STD tt[2]={1,"A",62,2,"",75}; C) struct tt[2]={{1,’A’},{2,’B’}}; D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}}; 21.以下选项中属于C语言的数据类型是 A)复数型B)布尔型C)集合型D)整型 22.一个C程序的执行是从 A)main()函数开始,直到main()函数结束 B)第一个函数开始,直到最后一个函数结束 C)第一个语句开始,直到最后一个语句结束 D)main()函数开始,直到最后一个函数结束 23.设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是 A)3B)0C)-12D)9 24.若有charc[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是 A)cd\0eB)'c''d'C)cdD)cde 25.已知: inta[2][3]={1,2,3,4,5,6},(*p)[3]=a;下列表达式不是4的是 A)*(*p+3)B)*p+3C)*(*(p+0)+3)D)a[0][3] 26.以下有宏替换不正确的叙述 A)宏替换不占用运行时间B)宏名无类型 C)宏替换只是字符串替换D)宏名必须用大写字母表示 27.执行charstr[10]=”Ch\nina”;strlen(str)的值是 A)5B)6C)7D)9 28.下面程序的输出结果是 #definePOWER(x)(x*x) main() {inti=4;printf("%d",POWER(i-2));} A)-9B)-7C)5D)-6 29.在定义inta[3][4];后,第10个元素是 A)a[2][4]B)a[3][2]C)a[3][3]D)a[3][1] 30.下面程序的输出结果是 typedefstruct {longx[2]; shorty[4]; charz[8]; }MYTYPE; MYTYPEa; main() {printf("%d\n",sizeof(a));} A)2B)8C)14D)24 31.以下能正确进行字符串赋值的是 A)chars[5]={‘a’,’e’,’I’,’o’,’u’}B)chars[5];s=”good” C)chars[5]=”abcd”D)chars[5];s[]=”good” 32.若有floatx;则sizeof(x)和sizeof(float)两种描述 A)都正确B)都不正确 C)前者正确,后者不正确D)后者正确,前者不正确 33.若有代数式3ae/(bc),则不正确的C语言表达式是 A)3*a*e/b*cB)3*a*e/b/cC)a/b/c*e*3D)a*e/c/b*3 34.下面程序的运行结果是 Main() {structcmplx{intx; inty; }cnum[2]={1,3,2,7}; Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x); } A)0B)1C)3D)6 35.若有以下说明和语句,且0<=i<10,则()是对数组元素的错误引用 inta[]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a; A)*(a+i)B)a[p-a]C)p+iD)*(&a[i]) 36.设有以下宏定义: #defineM2 #defineX(m)((M+2)*m) 则执行语句: z=2*(M+X(3+2));后,z的值为 A)44B)45C)32D)33 37.在如下程序段中的while循环 intk=0; While(k=1)k++; A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次 38.下列程序运行的结果为 #include Main() {intk=0; Charc=’A’; Do {switch(c++) {case‘A’: k++;break; Case‘B’: k--;break; Case‘C’: k+=2;break; Case‘D’: k=k%2;break; Case‘E’: k=k*10;break; Default: k=k/3; } K++; }while(c<’G’); Printf(“k=%d”,k); } A)k=4B)k=6C)k=7D)k=8 39.下列程序运行的结果为 #include fun(intx,inty,int*cp,int*dp) { *cp=x+y; *dp=x-y; } main() {inta,b,c,d ; a=30 ; b=50; fun(a,b,&c,&d); printf(“%d,%d\n”,c,d); } A)50,30B)30,50C)80,-20D)80,20 40.阅读程序回答问题: main() {inti,j,k,m=0; for(i=1;i<4;i++) for(j=1;j<4;j++) for(k=1;k<4;k++) m++; printf(“M=%d”,m); } 以上程序输出M=(). A)3B)6C)9D)27 41.能将高级语言编写的源程序转换为目标程序的是 A)链接程序B)解释程序C)编译程序D)编辑程序 42.以下4组用户定义标识符中,全部合法的一组是 A)mainB)IfC)txtD)int enclude-maxREALk_2 sinturbo3COM_001 43.设有以下定义 inta=0; doubleb=1.25; charc=’A’; #defined2 则下面语句中错误的是() A)a++B)b++C)c++D)d++; 44.以下4个选项中,不能看作一条语句的是 A){;}B)a=0,b=0,c=0C)if(a>0)D)if(b==0)m=1;n=2; 45.有以下程序 main() {chark;inti; for(i=1;i<3;i++) {scanf("%c",&k); switch(k) {case'0': printf("another\n"); case'1': printf("number\n"); } } } 程序运行时,从键盘输入: 01<回车>,程序执行后的输出结果是 A)anotherB)anotherC)anotherD)number numbernumbernumbernumber anothernumber 46.有以下程序 voidf(intv,intw) {intt; t=v;v=w;w=t; } main() {intx=1,y=3,z=2; if(x>y)f(x,y); elseif(y>z)f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后输出结果是 A)1,2,3B)3,1,2C)1,3,2D)2,3,1 47.有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是 A)5B)6C)8D)9 48.有以下程序 #definef(x)x*x main() {inti; i=f(4+4)/f(2+2); printf("%d\n",i); } 执行后输出结果是 A)28B)22C)16D)4 49.设有以下语句 typedefstructS {intg;charh;}T; 则下面叙述中正确的是 A)可用S定义结构体变量B)可以用T定义结构体变量 C)S是struct类型的变量D)T是structS类型的变量 50.有以下程序 inta=2; intf(int*a) {return(*a)++;} main() {ints=0; {inta=5; s+=f(&a); } s+=f(&a); printf("%d\n",s); } 执行后输出结果是 A)10B)9C)7D)8 51.组成C程序的基本单位是 A)函数B)标识符C)表达式D)语句 52.设int类型的数据长度为2字节,则该类型数据的取值范围 A)0至65536B)0至65535C)-32767至32768D)-32768至32767 53.在C语言中,逻辑值“真”是用()表示的。 A)预定义为真值的宏B)非零数C)正数D)非零整数 54.C语言对于嵌套if语句规定else总是与()匹配 A)与最外层的ifB)与之前最近的if C)与之前最近的不带else的ifD)与最近的{}之前的if 55.数组定义chara[10]={`a`,`b`,`c`}: 包括了几个元素 A)3B)9C)4D)10 56.数组名作为实参传给被调用的函数时,形参获得的是 A)该数组第一个元素的值B)该数组所有元素的值 C)该数组第一个元素的首地址D)该数组任意元素的地址 57.为表示关系x≥y≥z,正确的C语言表达式为 A)(x>=>y>=z)B)(x>=y)AND(y>=z) C)(x>=y)&&(y>=z)D)(x>y)&(y>=z) 58.根据定义inta[]={1,2,3},i,*p=a;从语法分析()是不正确的。 A)a[p-a]B)*(&a)C)pD)*(*(a+i)) 59.若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为 A)1234B)12,34C)1234D)12: 34 60.unionuex{inti;floatf;charc;}ex;则sizeof(ex)的值是 A)4B)5C)6D)7 61.将十六进制数176转换成十进制数是 A)366B)268C)374D)270 62.下列语句中符合C语言语法的赋值语句是 A)a=7+b+c=a+7B)a=7+b++=a+7 C)a=7+b,b++,a+7D)a=7+b,c=a+7 63.在C语言中,要求运算数必须是整型的运算符是 A)%B)/C) 64.已知字母A的ASCⅡ码为十进制的65,下面程序的输出是 A)67,DB)B,CC)C,DD)不确定的值 main() {charch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2);} 65.下面程序的输出是 A)0B)1C)3D)不确定的值 main() {intx=10,y=3; printf("%d\n",y=x/y);} 66.若执行下面的程序时从键盘上输入3和4,则输出是 A)14B)16C)18D)20 main() {inta,b,s; scanf("%d%d",&a,&b); s=15; if(a*5)printf("%d\n",++s); elseprintf("%d\n",s--);} 67.下面程序的输出是 A)3B)4C)1D)2 main() {inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));} 68.执行下面程序中输出语句后,a的值是 A)65B)20C)15D)10 main() {inta,k,b; printf("%d\n",(a=3*5,a*4,a+5));} printf("%d%d%d%\n",k,a,b);} 69.下列函数的功能是 A)求字符串的长度B)比较两个字符串的大小 C)将字符串X复制到字符串YD)将字符串X连接到字符串Y后面 intfun1(chat*x) {char*y=x; while(*y++); return(y-x-1);} 70.若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回是 A)EOFB)-1C)非零值D)NULL 71.二进制语言是属于 A)面向机器语言B)面向过程语言C)面向问题语言D)面向汇编语言 72.不是c语言提供的合法关键字是 A)switchB)cherC)caseD)default 73.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为 A)3,3,2B)3,2,2D)3,2,3D)2,3,2 74.表达式“10! =9”的值是 A)trueB)非零值C)0D)1 75.以下程序的输出结果是 main() {intx=10,y=10; printf(“%d%d、n”,x--,--y); } A)1010B)99C)910D)109 76.以下程序的输出结果是 main() {intx=10,y=10; printf(“%d%d\n”,x++,--y); } A)1010B)99C)910D)109 77.设有如下定义: char*aa[2]={“abcd”,“ABCD”}; 则以下就法中正确的是 A)aa数组成元素的值分别是“abcd”和ABCD B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址 78.下列程序的输出结果是 main() { charp1[10]={"abcd"},p2[10]={"ABCD"},str[50]="xyz"; strcpy(str,strcat(p1,p2)); printf("%s",str); } A)xyabcABB)abcABzC)ABabczD)abcdABCD 79.main() {inta[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d",*(p)); printf("%d\n",**k); } A)44B)24C)22D)46 80.执行以下程序后,y的值是 main() {inta[]={2,4,6,8,10}; inty=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y=*(p+x); printf(“%d\n”,y); } A)6B)4C)8D)10 81.C语言提供的合法的数据类型关键字是 A)DoubleB)shortC)integerD)Char 82.表达式: 10! =9的值是 A)trueB)非零值C)0D)1 83.在下列选项中,不正确的赋值语句是 A)tB)n1=(n2=(n3=0)) C)k=i==jD)a=bc=1; 84.有以下程序段 int m=0,n=0; char c=’a’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入: 10A10<回车>,则输出结果是: A) 10,A,10B) 10,a,10C) 10,a,0D) 10,A,0 85.不能把字符串: Hello! 赋给数组b的语句是 A)charb[10]={'H','e','l','l','o','! '}; B)charb[10];b=“Hello! ”; C)charb[10];strcpy(b,“Hello! ”); D)charb[10]=“Hello! ”; 86.若有以下说明: inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是 A)*p6B)*(p6)C)*p+5D)p5 87.若有以下说明: intw[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 习题集 答案