C语言练习题.docx
- 文档编号:12031022
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:38
- 大小:39.31KB
C语言练习题.docx
《C语言练习题.docx》由会员分享,可在线阅读,更多相关《C语言练习题.docx(38页珍藏版)》请在冰豆网上搜索。
C语言练习题
C语言练习题
一、选择题
1.以下选项中属于C语言的数据类型是()。
A)复数型B)双精度型C)逻辑型D)集合型
2.在C语言中,不正确的int类型的常数是()。
A)32768B)0C)037D)0xAF
3.设有定义:
intx=1,y=-1;则下面语句的输出结果是()。
A)1B)0C)-1D)2
printf("%d\n",(x--&++y));
4.若有下面的说明和语句,则输出结果是()。
A)0377B)040C)32D)以上答案均不正确
chara=9,b=020;
printf("%o\n",~a&b<<1);
5.当c的值不为0时,能正确将c的值赋给变量a、b的是()。
A)c=b=a;B)(a=c)||(b=c)C)(a=c)&&(b=c)D)a=c=b
6.请选出可用作C语言用户标识符的一组标识符是()。
A)voiddefineWORDB)a3_b3_789IF
C)For–gifCASED)3dUNDOsizeof
7.C语言程序的基本单位是()。
A)程序字段B)语句C)函数D)字符
8.下面程序段的输出结果是()。
A)11,10B)11,11C)10,10D)10,11
intx=10;inty=x++;
printf("%d,%d",(x++,y),y++);
9.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值,则下列能正确表示1/(xyz)的表达式是()。
A)1/x*y*zB)1/(x*y*z)C)1/x/y/(float)zD)1.0/(x*y*z)
10.为表示关系x>=y>=z,应使用C语言表达式为()。
A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)
C)(x>=y>=z)D)(x>=y)&(y>=z)
11.在C语言中,if语句的一对圆括号中,用以决定分支的流程的表达式()。
A)只能用逻辑表达式B)只能用逻辑表达式关系表达式
C)只能用关系表达式D)可用任意表达式
12.在以下运算符中,优先级最高的运算符是()。
A)!
B)=C)+D)||
13.设有如下定义:
intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。
A)1B)0C)4D)3
14.设有单精度变量f,其值为13.8,执行语句“n=(int)f%3;”后,整型变量的值是()。
A)1B)4C)4.333333D)4.6
15.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是()。
A)0至255B)0至65535C)-256至255D)-32768至32767
16.在C语言中,char型数据在内存中的存储形式是()。
A)补码B)反码C)原码D)ACSⅡ码
17.下面程序的输出结果是()。
A)a=0,b=0,c=0B)a=1,b=1,c=1C)a=1,b=0,c=1D)a=0,b=1,c=1
#include
main()
{inta=0,b=0,c=0;
if(++a>0||++b>0)++c;
printf("\na=%d,b=%d,c=%d",a,b,c);
}
18.下面程序段的输出结果是()。
A)0B)1C)2D)5
inta=2,b=3,c=4,d=5;intm=2,n=2;
a=(m=a>b)&&(n=c>d)+5;
printf("%d",n);
19.以下程序的运行结果是()。
A)6B)6789C)'6'D)789
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;intI;
i=8;p=a+i;
printf("%s\n",p-3);
}
20.以下说法正确的是()。
A)#define和printf都是C语句B)define是C语句,而printf不是
C)printf是C语句,但#define不是D)#define和printf都不是C语句
21.语句:
printf("%d\n",12&012);的输出结果是()。
A)12B)8C)6D)012
22.当执行下面的程序时,如果输入ABC,则输出结果是()。
A)ABC6789B)ABC67C)12345ABC6D)ABC4567789
#include"stdio.h"
#include"string.h"
main()
{charss[10]="12345";gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}
23.若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。
A)p+1B)a+1C)a++D)++p
24.下面对a的初始化,不正确的是()。
A)chara[5]={"ABC"};B)chara[5]={'x','y','z'};C)chara[5]="";D)chara[5]="abcdef";
25.有两个字符数组a,b,以下正确的输入语句是()。
A)gets(a,b)B)scanf("%s%s",a,b);C)scanf("%s%s",&a,&b);D)gets("a"),gets("b");
26.有字符数组x[8],y[4],正确的输出语句是()。
A)puts(x,y);B)printf("%s,%s",x[],y[]);C)putchar(x,y);D)puts(x),puts(y);
27.若k为int型变量,则以下语句的输出结果是()。
A)输出格式描述符不合法B)|008567|C)|8567
|D)|-08567|
k=8567;printf("|%-06d|\n",k);
28.以下程序的输出结果是()。
A)17,021,0x11B)17,17,17C)17,0x11,021D)17,21,11
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
29.下面程序段的输出结果是()。
A)a=10,b=50,c=10B)a=10,b=30,c=10C)a=50,b=30,c=10D)a=50,b=30,c=50
inta,b,c;a=10,b=50,c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%d,b=%d,c=%d",a,b,c);
30.运行以下程序,从键盘输入2473<回车>,则下面程序的运行结果是()。
A)668977B)668966C)66778777D)6688766
#include
main()
{intc;
while((c=getchar())!
='\n')
switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
31.下面程序段的功能是计算1000!
的末尾含有多少个零。
题中空白处应选()。
A)m%5=0B)m=m%5==0C)m%5==0D)m%5!
=0
for(k=0,i=5;i<=1000;i+=5)
{m=I;
while(){k++;m=m/5;}}
32.下面程序段中循环体的执行次数是()。
A)5B)2C)3D)4
a=10;b=0;
do{b+=2;a-=2+b;}
while(a>=0);
33.下面程序的输出是()。
A)y=0B)while构成无限循环C)y=1D)y=-1
#include
main()
{inty=10;while(y--);
printf("y=%d\n",y);}
34.下面程序的输出是()。
A)2B)4C)6D)8
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y) *(ptr+y): x; printf("%d\n",z); } 35.以下程序的输出结果是()。 A)ihgfedcbaB)abcdefghiC)abcdedcbaD)ihgfefghi #include main() {char*a="abcdefghi";intk; fun(a);puts(a); } fun(char*s) {intx,y;charc; for(x=0,y=strlen(s)-1;x {c=s[y];s[y]=s[x];s[x]=c;} } 36.以下程序的输出结果是()。 A)14B)0C)6D)值不确定 main() {intn[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++)n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); } 37.以下程序的输出结果是()。 A)2B)1C)0D)不确定 main() {union{chari[2];intk;}r; r.i[0]=2;r.i[1]=0; printf("%d\n",r.k);} 38.以下程序的输出结果是()。 A)54321B)012345C)12345D)543210 main() {intw=5;fun(w);printf("\n");} fun(intk) {if(k>0)fun(k-1); printf("%d",k); } 39.以下程序的输出结果是()。 A)699B)669C)61515D)6615 intd=1; fun(intp) {staticintd=5; d+=p; printf("%d",d); return(d); } main() {inta=3;printf("%d\n",fun(a+fun(d)));} 40.以下程序的输出结果是()。 A)123456780B)123456780C)12345678D)147 main() {charch[3][4]={"123","456","78"},*p[3];inti; for(i=0;i<3;i++)p[i]=ch[i]; for(i=0;i<3;i++)printf("%s",p[i]);} 41.以下程序的输出结果是()。 A)9B)6C)36D)18 #definef(x)x*x main() {inta=6,b=2,c; c=f(a)/f(b); printf("%d\n",c);} 42.以下程序运行结果是()。 A)14.0B)31.5C)7.5D)10.5 #definePT3.5 #defineS(x)PT*x*x main() {inta=1,b=2;printf("%4.1f\n",S(a+b));} 43.以下程序的输出结果是()。 A)4211B)0008C)4678D)8888 main() {char*s="12134211";intv[4]={0,0,0,0},k,i; for(k=0;s[k];k++) {switch(s[k]) {case'1': i=0; case'2': i=1; case'3': i=2; case'4': i=3; } v[i]++; } for(k=0;k<4;k++)printf("%d",v[k]);} 44.以下程序的输出结果是()。 A)AfghdEFGB)AbfhdC)AfghdD)Afgd #include main() {char*p1,*p2,str[50]="ABCDEFG"; p1="abcd";p2="efgh"; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s",str);} 45.若有以下定义和语句,则正确的叙述是()。 A)以下两处的*p含义相同,都说明给指针变量p赋值 B)在"doubler=99,*p=&r;"中,把r的地址赋给p所指的存储单元 C)语句"*p=r;"把变量r的值赋给指针变量p D)语句"*p=r;"取变量r的值放回r中 46.设有如下枚举型定义,则枚举变量black的值是()。 A)7B)15C)12D)14 enumcolor{red=3,yellow,blue=10,white,black}; 47.若有以下说明和语句,对C数组元素的正确引用是()。 A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(*cp+2) intc[4][5],(*cp)[5];cp=c; 48.以下程序段给数组所有的元素输入数据,正确的一项是()。 A)a+(i++)B)&a[i+1]C)a+iD)&a[++i] #include main() {inta[10],i=0; while(i<10) scanf("%d",); ……} 49.C语言中各种基本数据类型的存储空间长度排列为()。 A)char≤long≤int≤float≤doubleB)double≤float≤long≤int≤char C)char≤int≤long≤float≤doubleD)float≤int≤long≤char≤double 50.下面的程序的输出结果是()。 A)1B)1和-2C)3和0D)死循环 main() {intx=3; do{printf("%d\n",x-=2);}while(! (--x));} 51.下面程序段的输出结果是()。 A)##B)##*C)死循环D)含有不合法的控制表达式 x=3; do{y=x--; if(! y){printf("x");continue;} printf("#"); } while(1<=x<=2); 52.C语言中允许用外部说明来指定变量、函数和其它标识符的特征,这里所说的外部是指()。 A)冠以关键字externB)它们的位置在函数体外部 C)它们的作用范围是全程的D)它们的位置在函数外部 53.设有如下的程序段,执行完下面的程序段后,*(ptr+5)的值是()。 A)'o'B)'\0'C)不确定的值D)'o'的地址 charstr[]="Hello";char*ptr; ptr=str; 54.下面程序把数组元素中的最大值放入a[0]中。 则在if语句条件表达式应该是()。 A)p>aB)*p>a[0]C)*p>*a[0]D)*p[0]>*a[0] main() {inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i; for(i=0;i<10;i++,p++) if()*a=*p; printf("%d",*a); } 55.下面程序的输出结果是()。 A)-1B)0C)1D)2 #include main() {inti=2,p;p=f(i,i+1); printf("%d",p);} intf(a,b) inta,b; {intc;c=a; if(a>b)c=1; else if(a==b)c=0;elsec=-1; return(c);} 56.若有以下的说明 structperson {charname[20];intage;charsex;}a={"lining",20,'m'},*p=&a; 则对字符串lining的引用方式不正确的是()。 A)(*p).nameB)p.nameC)a.nameD)p->name 57.fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。 A)字符串读入后不会自动加入'\0'B)fp是file类型的指针 C)fgets函数将文件中最多读入n-1个字符D)fgets函数将文件中最多读入n个字符 58.判断字符串x和y是否相等,应当使用()。 A)if(x==y)B)if(x=y)C)if(strcpy(x,y))D)if(strcmp(x,y)) 59.下面程序的输出是()。 A)0123B)04010C)04515D)14515 main() {enumteam{my,your=4,his,her=his+10}; printf("%d%d%d%d\n",my,your,his,her); } 60.下面程序的输出结果是()。 A)100B)160C)120D)64 main() {charx=040; printf("%d\n",x=x<<1); } 61.下面程序的输出结果是()。 A)EIMCB)ABCDC)EFGHD)AEIM char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"},**p; main() {inti;p=alpha; for(i=0;i<4;i++)printf("%c",(*p)[i]); printf("\n"); } 62.若有以下定义和语句,且0≤i<10,则对数组元素的错误引用是()。 A)*(a+i)B)a[p-a]C)p+iD)*(&a[i]) inta[]={1,2,3,4,5,6,7,8,9,0};int*p,i;p=a; 63.下面程序的运行结果是()。 A)mogninrB)moC)norningD)nornin #include main() {chara[]="morning",t; inti,j=0; for(i=1;i<7;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题