c语言试题.docx
- 文档编号:28718410
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:30
- 大小:23.78KB
c语言试题.docx
《c语言试题.docx》由会员分享,可在线阅读,更多相关《c语言试题.docx(30页珍藏版)》请在冰豆网上搜索。
c语言试题
一、选择题答案
1.以下所列的C语言常量中,错误的是
A)0xFF
B)1.2e0.5
C)2L
D)'\72'
你所选择的答案是:
*,正确答案是:
B×
2.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是
A)EOF
B)-1
C)非零值
D)NULL
你所选择的答案是:
*,正确答案是:
C×
3.以下程序的输出结果是
main()
{
intnum=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
A)1
2
3
4
B)1
2
3
C)1
2
D)l
你所选择的答案是:
*,正确答案是:
B×
4.以下程序的输出结果是
main()
{inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650
B)1470
C)5430
D)输出值不定
你所选择的答案是:
*,正确答案是:
A×
5.以下选项中,不能正确赋值的是
A)chars1[10];s1="Ctest";
B)chars2[]={'C','t','e','s','t'};
C)chars3[20]="Ctest";
D)char*s4="Ctest\n"
你所选择的答案是:
*,正确答案是:
A×
6.以下程序的输出结果是
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
}
A)19
B)17
C)15
D)12
你所选择的答案是:
*,正确答案是:
D×
7.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L;
你所选择的答案是:
*,正确答案是:
D×
8.以下程序的输出结果是
main()
{
inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A)5
B)4
C)6
D)不确定
你所选择的答案是:
*,正确答案是:
C×
9.若有以下程序
#include
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);}
则以下叙述中不正确的是
A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C)对于以上程序,编译时系统会提示出错信息:
提示对对f函数重复说明
D)函数f无返回值,所以可用void将其类型定义为无值型
你所选择的答案是:
*,正确答案是:
C×
10.在说明语句:
int*f();中,标识符f代表的是
A)一个用于指向整型数据的指针变量
B)一个用于指向一维数组的行指针
C)一个用于指向函数的指针变量
D)一个返回值为指针型的函数名
你所选择的答案是:
*,正确答案是:
D×
11.已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是
A)6
B)0
C)2
D)1
你所选择的答案是:
*,正确答案是:
D×
12.有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n<3);
此处do-while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
你所选择的答案是:
*,正确答案是:
D×
13.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i for(j=i+1,j if(a[i]} main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=o;i<10;i++)print("%d,",aa[i]); printf('\n"); } 程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3 你所选择的答案是: *,正确答案是: C× 14.有以下程序 main() {chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j; i=sizeof(a);j=strlen(a); printf("%d,%d\b"i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8 你所选择的答案是: *,正确答案是: D× 15.C语言中用于结构化程序设计的三种基本结构是( )。 A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 你所选择的答案是: *,正确答案是: A× 16.有以下程序段 intm=0,n=0;charc='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入: 10A10<回车>,则输出结果是: ( )。 A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 你所选择的答案是: *,正确答案是: A× 17.有以下程序 main() {inti; for(i=0;i<3;i++) switch(i) {case1: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 执行后输出结果是( )。 A)011122 B)012 C)012020 D)120 你所选择的答案是: *,正确答案是: A× 18.以下叙述中正确的是( )。 A)C程序中注释部分可以出现在程序中任意合适的地方 B)花括号"{"和"}"只能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是C语句之间的分隔符,不是语句的一部分 你所选择的答案是: *,正确答案是: A× 19.以下不能定义为用户标识符的是( )。 A)scanf B)Void C)_3com_ D)int 你所选择的答案是: *,正确答案是: D× 20.以下选项中非法的表达式是( )。 A)0<=x<100 B)i=j==0 C)(char)(65+3) D)x+1=x+1 你所选择的答案是: *,正确答案是: D× 21.设有如下程序段: intx=2002,y=2003; printf("%d\n",(x,y)); 则以下叙述中正确的是( )。 A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为2002 D)输出值为2003 你所选择的答案是: *,正确答案是: D× 22.有以下程序 main() {ints=0,a=1,n; scanf("%d",&n); do {s+=1;a=a-2;} while(a! =n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。 A)-1 B)-3 C)-5 D)0 你所选择的答案是: *,正确答案是: B× 23.有以下程序 main() {inti,s=0; for(i=1;i<10;i+=2)s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是( )。 A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和 你所选择的答案是: *,正确答案是: D× 24.有以下程序 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); elsef(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后输出结果是( )。 A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1 你所选择的答案是: *,正确答案是: C× 25.有以下程序 intf(intb[][4]) {inti,j,s=0; for(j=0;j<4;j++) {i=j; if(i>2)i=3-j; s+=b[i][j]; } returns; } main() {inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(A)); } 执行后的输出结果是( )。 A)12 B)11 C)18 D)16 你所选择的答案是: *,正确答案是: D× 26.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t; C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg"); 你所选择的答案是: *,正确答案是: C× 27.有以下定义语句 doublea,b;intw;longc; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 A)a=a+b=b++ B)w%(int)a+b) C)(c+w)%(int)a D)w=a==b; 你所选择的答案是: *,正确答案是: C× 28.有以下程序 main() {inti; for(i=0;i<3;i++) switch(i) { case0: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 程序运行后的输出结果是( )。 A)022111 B)021021 C)000122 D)012 你所选择的答案是: *,正确答案是: C× 29.若变量已正确定义,要求程序段完成求5! 的计算,不能完成此操作的程序段是( )。 A)for(i=1,p=1;i<=5;i++)p*=i; B)for(i=1;i<=5;i++){p=1;p*=i;} C)i=1;p=1;while(i<=5){p*=i;i++;} D)i=1;p=1;do{p*=i;i++;}while(i<=5); 你所选择的答案是: *,正确答案是: B× 30.有以下程序 main() {intm=12,n=34; printf("%d%d",m++,++n); printf("%d%d",n++,++m); } 程序运行后的输出结果是( )。 A)12353514 B)12353513 C)12343514 D)12343513 你所选择的答案是: *,正确答案是: A× 31.若整型变量a、b、c、d中的值依次为: 1、4、3、2。 则条件表达式a a: c c: d的值( )。 A)1 B)2 C)3 D)4 你所选择的答案是: *,正确答案是: A× 32.以下能正确定义一维数组的选项是( )。 A)inta[5]={0,1,2,3,4,5}; B)chara[]={0,1,2,3,4,5}; C)chara={'A','B','C'}; D)inta[5]="0123"; 你所选择的答案是: *,正确答案是: B× 33.若有以下说明和定义 uniondt { inta;charb;doublec; }data; 以下叙述中错误的是( )。 A)data的每个成员起始地址都相同 B)变量data所占内存字节数与成员c所占字节数相等 C)程序段: data.a=5;printf("%f",data.c);输出结果为5.000000 D)data可以作为函数的实参 你所选择的答案是: *,正确答案是: C× 34.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。 A)k%2 B)k%2==1 C)(k%2)! =0 D)! k%2==1 你所选择的答案是: *,正确答案是: D× 35.设有定义: intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。 A)*p=*q;B)p=q;C)*p=&n1;D)p=*q; 你所选择的答案是: *,正确答案是: A× 36.有以下程序 main() {chara1='M',a2='m'; printf("%c\n",(a1,a2));} 以下叙述中正确的是( )。 A)程序输出大写字母M B)程序输出小写字母m C)格式说明符不足,编译出错 D)程序运行时产生出错信息 你所选择的答案是: *,正确答案是: B× 37.要求通过while循环不断读入字符,当读入字母N时结束循环。 若变量已正确定义,以下正确的程序段是 A)while((ch=getchar())! ='N')printf(“%c”,ch); B)while(ch=getchar()! ='N')printf(“%c”,ch); C)while(ch=getchar()==N')printf(“%c”,ch); D)while((ch=getchar())=='N')printf(“%c”,ch); 你所选择的答案是: *,正确答案是: A× 38.以下叙述中错误的是 A)C程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在 C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回对应的实参 你所选择的答案是: *,正确答案是: D× 39.若有定义语句: intk[2][3],*pk[3];,则以下语句中正确的是________。 A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k; 你所选择的答案是: *,正确答案是: B× 40.有以下程序段' charname[20]; intnum; scanf("name=%s,num=%d"name;&num); 当执行上述程序段,并从键盘输入: name=Lilinum=1001<回车>后,name的值为 A)Lili B)name=Lili C)Lilinum= D)name=Lilinum=1001 你所选择的答案是: *,正确答案是: A× 41.有以下程序 #include"stdio.h" main() {ints; scanf("%d",&s); while(s>0) {switch(s) {case1: printf("%d",s+5); case2: printf("%d",s+4);break; case3: printf("%d",s+3); default: printf("%d",s+1);break; } scanf("%d",&s); } } 运行时,若输入123450<回车>,则输出结果是 A)6566456 B)66656 C)66666 D)6666656 你所选择的答案是: *,正确答案是: A× 42.有以下程序段 inti,n; for(i=0;i<8;i++) {n=rand()%5; switch(n) {case1: case3: printf("%d\n",n);break; case2: case4: printf("%d\n",n);continue; case0: exit(0); } printf("%d\n",n); } 以下关于程序段执行情况的叙述,正确的是 A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作 C)当产生的随机数n为1和2时不做任何操作 D)当产生的随机数n为0时结束程序运行 你所选择的答案是: *,正确答案是: E× 43.有以下程序 #include"stdio.h" main() {intx=1,y=0; if(! x)y++; elseif(x==0) if(x)y+=2; elsey+=3; printf("%d\n",y); } 程序运行后的输出结果是 A)3 B)2 C)1 D)0 你所选择的答案是: *,正确答案是: D× 44.以下函数的功能是: 为数组中的所有元素赋值。 #include"stdio.h" #defineN10 voidfun(intx[N]) {inti=0; while(i<_____ x[i]=i++; } 在程序中下划线处应填入的是 A)x+i B)x[i] C)N D)&x[++i] 你所选择的答案是: *,正确答案是: C× 45.有以下程序 #include"stdio.h" main() {chara[30],b[30]; scanf("%s",a); gets(b); printf("%s\n%s\n",a,b); } 程序运行时若输入: howareyou? Iamfine<回车> 则输出结果是 A)howareyou? B)how areyou? Iamfine C)howareyou? Iamfine D)rowareyou? 你所选择的答案是: *,正确答案是: B× 46.设有如下函数定义 intfun(intk) {if(k<1)return0; elseif(k==1)return1; elsereturnfun(k-1)+1; } 若执行调用语句: n=fun(3);,则函数fun总共被调用的次数是 A)2 B)3 C)4 D)5 你所选择的答案是: *,正确答案是: B× 47.有以下程序 #include"stdio.h" #defineS(x)4*(x)*x+1 main() {intk=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是 A)197 B)143 C)33 D)28 你所选择的答案是: *,正确答案是: B× 48.以下关于结构化程序设计的叙述中正确的是 A)一个结构化程序必须同时由顺序、分支、循环三种结构组成 B)结构化程序使用goto语句会很便捷 C)在C语言中,程序的模块化是利用函数实现的 D)由三种基本结构构成的程序只能解决小规模的问题 你所选择的答案是: *,正确答案是: C× 49.以下关于简单程序设计的步骤和顺序的说法中正确的是 A)确定算法后,整理并写出文档,最后进行编码和上机调试 B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档 D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 你所选择的答案是: *,正确答案是: B× 50.有以下定义: inta;longb;doublex,y;则以下选项中正确的表达式语句是 A)a%(int)(x-y) B)a=x! =y; C)(a*y)%b D)y=x+y=x 你所选择的答案是: *,正确答案是: B× 51.表达式a+=a-=a=9的值是 A)9 B)_9 C)18 D)0 你所选择的答案是: *,正确答案是: D× 52.若有定义语句inta,b;doublex;则下列选项中没有错误的是 A)switch(x%2) {case0: a++;break; case1: b++;break; default: a++;b++; } B)switch((int)x/2.0 {case0: a++;break; case1: b++;break; default: a++;b++; } C)switch((int)x%2) {case0: a++;break; case1: b++;break; default: a++;b++; } D)switch((int)(x)%2) {case0.0: a++;break; case1.0: b++;break; default: a++;b++; } 你所选择的答案是: *,正确答案是: B× 53.有以下程序 #include main() {inta=1,b=2; while(a<6){b+=a;a+=2;b%=10;} printf("%d,%d\n",a,b); } 程序运行后的输出结果是 A)5,11 B)7,1 C)7,11 D)6,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)