c语言单选练习.docx
- 文档编号:3745617
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:16
- 大小:20.96KB
c语言单选练习.docx
《c语言单选练习.docx》由会员分享,可在线阅读,更多相关《c语言单选练习.docx(16页珍藏版)》请在冰豆网上搜索。
c语言单选练习
1.C语言程序中可以对程序进行注释,注释部分必须用符号___C__括起来。
A.{和}
B.[和]
C./*和*/
D.*/和/*
2.设要定义n为整型变量,定义x为浮点型变量,正确的语句是:
__D___。
A.intn,floatx,
B.intn,floatx;
C.intn;floatx,
D.intn;floatx;
3.设有intn;从键盘上输入整数给变量n,正确的语句是:
__D___。
A.scanf(n);
B.scanf("n");
C.scanf("%d",n);
D.scanf("%d",&n);
4.程序段
intx=3,y=2;
printf("%d",x*=y+8/5);
的输出结果为___D__。
A.1
B.5
C.7
D.9
5.要判断char型变量m是否是数字字符,可以使用表达式_____B_____。
A.0<=m&&m<=9
B.m>='0'&&m<='9'
C."0"<=m&&m<="9"
D.'0'<=m<='9'
6.执行以下代码段后,a的值为__A___。
inta=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
A.1
B.2
C.3
D.不确定
7.设intn;判断“n不为0”的表达式是:
___D____。
A.n==0
B.!
(n=0)
C.n=!
0
D.n!
=0
8.下面的for语句执行时,___B____将形成无限循环。
A.for(s=j=0;j<100;j+=1)s+=j;
B.for(s=j=0;j<100;j+1)s+=j;
C.for(s=j=0;j<100;++j)s+=j-1;
D.for(s=j=0;j<100;j++)s+=j;
9.循环语句中,break的作用是___C____。
A.终止程序运行
B.结束本次循环
C.从本循环体内跳出
D.跳出子函数
10.以下正确的语句是____D______。
A.inta[1][4]={1,2,3,4,5};
B.floatx[3][]={{1},{2},{3}};
C.longb[2][3]={{1},{1,2},{1,2,3}};
D.doubley[][3]={0};
11.执行以下程序段后,m的值是__C___。
inta[]={2,1,3,5,4};
intm=10,k,*ptr=a;
for(k=0;k<5;k++)
m+=*(ptr+k);
A.23
B.24
C.25
D.26
12.若有数组定义并初始化语句:
chara1[]={’p’,’r’,’o’};chara2[]=〝pro〞;则下列正确的说法是___D_______。
A.a1和a2完全相同
B.a1和a2不同,a1是指针
C.a1和a2存储单元的数目相同
D.a1和a2不同,a2的存储单元的数目多
13.若有函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));
则可以判断该函数的参数个数是___A____。
A.3
B.2
C.5
D.有语法错误
14.若有以下定义:
structperson{
charname[9];
intage;}c[10]={"Wang",19,"Zhang",17,"Li",20,"Zhao",18};
则能打印出字母'L'的语句是__D___。
A.printf(“%c”,c[3].name);
B.printf(“%c”,c[3].name[1]);
C.printf(“%c”,c[2].name[1]);
D.printf(“%c”,c[2].name[0]);
15.若要打开当前目录中的文本文件abc.txt进行只读操作,则下面符合此要求的函数调用是___B__。
A.fopen("abc.txt","rb");
B.fopen("abc.txt","r");
C.fopen("abc.txt","a");
D.fopen("abc.txt","w");
16.关于C程序的主函数,以下描述中正确的是:
___D____。
A.C程序的第一个函数称为主函数,程序从该函数开始运行。
B.C程序可以有多个主函数,程序从第一个主函数开始运行。
C.C程序可以没有主函数,程序从第一个函数开始运行。
D.C程序的主函数即是main函数,程序从该函数开始运行。
17.字符变量a与b分别初始为'S'与'B',正确的语句是:
____D___。
A.chara,b='S','B';
B.chara='S',charb='B';
C.chara="S",b="B";
D.chara='S',b='B';
18.设有intn=2010;要求屏幕上显示“n=2010”结果,正确的语句是:
__D_____。
A.printf(n);
B.printf("n=",n);
C.printf("n=","%d",n);
D.printf("n=%d",n);
19.设有变量定义:
inta=5,b=8;当执行完语句:
b=a
a:
b-1;之后,变量a和b的值为____A___。
A.5和5
B.5和7
C.5和8
D.5和9
20.设intn;判断“n不为0”的表达式是:
____D___。
A.n==0
B.!
(n=0)
C.n=!
0
D.n!
=0
21.下列if语句中,错误的是____A___。
A.if(a==b)a--elseb++;
B.if(a-b>0)printf("a>b\n");
C.if(x>0&&x<10)y=x*x-1.5;
D.if(x)y+=1;
22.若有定义:
floatw;intnum;chars;则合法的switch语句是____C___。
A.switch(w){case1.0:
printf("*\n");case2.0:
printf("**\n");}
B.switch(num);{case1printf("*\n");case2printf("**\n");}
C.switch(s){case'a':
printf("*\n");case'b':
printf("**\n");default:
printf("\n");}
D.switch(num+1){case1:
printf("*\n");case1:
printf("**\n");default:
printf("\n");}
23.以下语句中,循环次数不为10次的语句是____A___。
A.for(i=1;i<10;i++);
B.i=1;do{i++;}while(i<=10);
C.i=10;while(i>0){--i;}
D.for(i=10;i>=1;i--};
24.用于for循环体中的continue语句的作用是____C___。
A.终止程序执行
B.终止循环继续
C.结束本次循环
D.重新执行循环
25.若要定义一个int型二维数组a,并使其各元素具有初值:
2300
4050
0000
则正确的定义语句是____B___。
A.inta[][]={2,3,0,0,4,0,5,0,0,0,0,0};
B.inta[][4]={2,3,0,0,4,0,5,0,0,0,0,0};
C.inta[3][4]={{2,3},{4,,5}};
D.inta[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}};
26.设有语句:
intx[]={0,1,2,3,4,5,6,7,8,9},*p=x+5;
while(*p++<7);
则语句printf("%d",*p--);
的输出结果为____D___。
A.出错
B.x[7]的地址
C.7
D.8
27.下列说明语句中_____A__是错误的。
A.chara[]='china';
B.chara[]="china";
C.chara[]={"china"};
D.chara[]={'c','h','i','n','a'};
28.已知函数原型intf(int)和intg(int)。
下列语句中,正确调用函数的语句是___D____。
A.intf(3);
B.f(intg(3));
C.intg(f(3));
D.p=f(g(3)+1);
29.设有以下结构体定义及初始化:
structfs{intfz,fm;};
structfsx={2,3},y={5,7};
则表达式x.fz*y.fm的结果是:
___A____。
A.14
B.10
C.21
D.15
30.若定义了文件指针FILE*fp;如要打开当前目录下一个只读文本文件abc.c并使fp指向该文件,正确的语句是___C____。
A.fp=fopen("abc.c","a");
B.fp=fopen("abc.c","w");
C.fp=fopen("abc.c","r");
D.fp=fopen("abc.c","r+");
31.C程序是由____D___组成的。
A.子程序
B.过程
C.子函数
D.主函数和子函数
32.若有定义语句:
charc='\n';则变量c___C____。
A.包含4个字符
B.包含2个字符
C.包含1个字符
D.说明不合法,c的值不确定
33.设有floatx=1.25;intn=x;则语句printf("%.2f,%d\n",x,n);的输出是:
___D____。
A.1.25,1.25
B.1,1
C.1,1.25
D.1.25,1
34.设x为char型变量,且初值为'f',则执行printf("%c\n",'A'+(x-'a'+1));后的输出结果是____A___。
A.G
B.H
C.I
D.J
35.设有intn;则判断“n为二位数(10至99)”的表达式是:
__D_____。
A.10<=n<=99
B.10<=n||n<=99
C.10<=n,n<=99
D.10<=n&&n<=99
36.下列if语句中,错误的是____A___。
A.if(a==b)a--elseb++;
B.if(a-b>0)printf("a>b\n");
C.if(x>0&&x<10)y=x*x-1.5;
D.if(x)y+=1;
37.设intn;判断“n为偶数”的表达式是:
__A_____。
A.!
(n%2)
B.!
(n%2==0)
C.n%2=0
D.n%2!
=0
38.设:
inti,n; floatsum;则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是____D___。
A.for(i=1;i<=n;i++)sum+=1/i;
B.for(i=1,sum=0.0;i<=n;i++)sum+=1/i;
C.for(i=1,sum=0.0;i<=n;i++)sum+=(float)(1/i);
D.for(i=1,sum=0.0;i<=n;i++)sum+=1.0/i;
39.C程序中,return语句的作用是___D____。
A.终止程序运行
B.返回到上层循环
C.返回到外层结构
D.返回到上层函数
40.以下数组定义语句中,错误的是____A___。
A.inta[][3];
B.inta[][3]={1,2,3,4,5,6,7,8,9};
C.inta[2][3]={1,2,3,4,5,6};
D.inta[2][3]={1,2,3};
41.设有变量定义:
charst[]="computer";
inti=0;
char*s=st;
当执行完语句:
while(*s++!
='u')i++;之后,则___C____。
A.i的值为5,*s的值为't'
B.i的值为5,*s的值为'u'
C.i的值为4,*s的值为't'
D.i的值为4,*s的值为'u'
42.设charb[5],*p=b;下列赋值语句中___C____是正确。
A.b="abcd";
B.*b="abcd";
C.p="abcd";
D.*p="abcd";
43.若有函数原型和变量定义语句:
voidswap(int*p,int*q);
intx,y;
则合法的函数调用语句是:
____C___。
A.swap(x,y);
B.swap(*x,*y);
C.swap(&x,&y);
D.swap(p,q);
44.若有结构体定义及初始化语句:
structnode
{intnum;
floatscore;
}stu[2]={101,91.5,102,92.5},*p=stu;
则表达式p->score的结果是:
__B____。
A.101
B.91.5
C.102
D.92.5
45.设有定义FILE*fp;将整数n以文本方式写到fp指向的文件的语句:
____B__。
A.fp=fopen("file.txt","w");
B.fprintf(fp,"%d",n);
C.fwrite(&n,sizeof(int),1,fp);
D.fclose(fp);
46.为操作“input.txt”文件,定义指针变量pf1的语句是:
___C____。
A.filepf1
B.FILEpf1
C.FILE*pf1
D.fileinupt.txt
47.C语言程序:
voidmain()
{intc=35;
printf("%d\n",c&&c);}
的执行结果是____B___。
A.0
B.1
C.c
D.c*c
48.以下叙述中正确的是(C)
A)C语言程序将从源程序中第一个函数开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D)main可作为用户标识符,用以命名任意一个函数作为主函数
49.有以下程序
voidmain()
{inta=0,b=0;
a=10;/*给a赋值
b=20;给b赋值*/
printf("a+b=%d\n",a+b);/*输出计算结果*/
}
程序运行后输出结果是____A____。
A)a+b=10 B)a+b=30 C)30 D)出错
50.已知字母A的ASCII代码值为65,若变量kk为char型,一下不能正确判断出kk中的值为大写字母的表达式是(B)
A)kk>='A'&&kk<='Z'
B)!
(kk>='A'||kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'
D)isalpha(kk)&&(kk<91)
E)isupper(kk)
51.以下选项中不合法的标识符是(C)
A)print B)FOR C)&a D)_00
52.已定义c为字符型变量,则下列语句中正确的是__C___。
A、c='97'
B、c="97";
C、c=97;
D、c="a";
53.执行以下程序段后,w的值为___C__。
intw='A',x=14,y=15;
w=((x||y)&&(w<'a'));
A、-1
B、NULL
C、1
D、0
54.设变量已经正确定义并赋值,以下正确的表达式是(C)
A)x=y*5=x+z
B)int(15.8%5)
C)x=y+z*5,++y
D)x=25%5.0
55.要求以下程序的功能是计算:
s=1+1/2+1/3+…+1/10。
voidmain()
{intn;floats;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是___C___。
A、s=1.0;
B、for(n=10;n>1;n--)
C、s=s+1/n;
D、printf("%6.4f\n",s);
56.有定义语句:
intx,y;。
若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是__A____。
A、1112↙
B、11,12↙
C、11,12↙
D、11,↙12↙
57.若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是__D___。
A、w==1
B、w==0
C、w!
=1
D、w!
=0
58.有以下程序
#include
voidmain()
{intx=1,y=2,z=3;
if(x>y)
if(y elseprintf("%d",++y); printf("%d\n",x++); } 程序的运行结果是__D____。 A、331 B、41 C、2 D、1 59.以下叙述中正确的是(C) A)break语句只能用于switch语句体中 B)continue语句的作用是: 使程序的执行流程跳出包含它的所有循环 C)break语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 60.有以下程序: voidmain() {intk=4,n=0; for(;n {n++; if(n%3! =0)continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是___C___。 A、1,1 B、2,2 C、3,3 D、4,4 61.以下不构成无限循环的语句或语句组是(A) A)n=0; do{++n;}while(n<=0); B)n=0; while (1){n++;} C)n=10; while(n);{n--;} D)for(n=0,i=1;;i++)n+=i; 62.有以下程序 #include voidmain() {inti=5; do {if(i%3==1) if(i%5==2){printf("*%d",i);break;} i++; }while(i! =0); printf("\n"); } 程序的运行结果是______。 A、*7 B、*3*5 C、*5 D、*2*6 63.以下能正确定义一维数组的选项是______。 A、intnum[] B、#defineN100 intnum[N] C、intnum[0..100] D、intN=100; 64.以下不能正确定义二维数组的选项是______。 A、inta[2][2]={{1},{2}}; B、inta[][2]={1,2,3,4}; C、inta[2][2]={{1},2,3} D、inta[2][]={{1,2},{3,4}} 65.下列函数定义中,会出现编译错误的是_____。 A、intmax(intx,inty,int*z) {*z=x>y? x: y;} B、intmax(intx,y) {intz; z=x>y? x: y; returnz;} C、intmax(intx,inty) {intz; z=x>y? x: y; return(z);} D、intmax(intx,inty) {return(x>y? x: y);} 66.有以下程序 intfun(inta,intb) {if(a>b)return(a); elsereturn(b); } voidmain() {intx=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后的输出结果是____D__。 A、3 B、6 C、8 D、12 67.有以下程序 voidfun(char*a,char*b) {a=b;(*a)++;} voidmain() {charc1='A',c2='a',*p1,*p2; p1=&c1;p2=&c2;fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是___A__。 A、Ab B、aa C、Aa D、Bb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)