c语言基础知识题库题?


基础知识一 单项选择题 (每题 2分,共 44分)1 以下叙述正确的是___。A C程序基本组成单位是语句 B C程序每一行只能写一个语句C 简单 C语句必须以分号作为结束符 D 注释语句可以嵌套2 一个 C语言程序是从___开始执行的。A 程序中第一个函数 B 名为 main 的函数C 包含文件(头文件)的第一个函数 D 程序中的第一个语句3 请选出合法的 C语言赋值语句___。A a=b=58 B i++; C a=58,b=58 D k=int(a+b);4 下面标识符中,合法的用户标识符是 ___。A 1abc B include C a-b-c123 D char5 以下所列的 C语言整形常量中,正确的是___。A 0x10 B 0976 C 076L D 01ff6 C语言中下列运算符的操作数必须为整型的是___。A % B ++ C / D =7 设 a和 b均为 int 型变量,则执行以下语句后的输出为___。int a=20; int b=3; printf( "%d\n ",a+=(b%=2));A 20 B 21 C 0 D 238 已知 int i; , 则执行语句 i=2.6; 后 , i的值为 ___ 。A 2 B 3 C 2.6 D 不确定9 以下合法的字符常量为___。A 'ab ' B '\482 ' C'\' D'\xaf '10 若 y为 int 型变量,则执行以下语句后, y的值是___。y=8; y+=y-=y*y;A 64 B – 56 C – 112 D – 4811 以下合法的浮点型常量是___。A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +512 设 int 数据占用两个字节, float 数据占用四个字节, double 数据占用 8个字节,且已知 float a=2;int b=3; 则执行下列语句输出为___。printf( "%d ",sizeof(a*b)+2/5);A 4 B 8 C 6 D 713 设 int 型占 2个字节,且 int i=-2;, 则语句 printf( "%u ",i); 的输出结果为___。A 0 B -2 C 65534 D 6553514 若 x、 y、 z均为整型常量,且 a=100 ,则执行下列语句后的 z值为___。x=a++; y=--a; z=x+y-a--;A 100 B 400 C 200 D 30015 若有以下定义和语句 : int u=010,v=0x10,w=10,printf( "%d,%d,%d\n ",u,v,w); , 则输出结果是___。A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,1016 设 x、 y为 int 型变量,则执行下列语句后, y的值是___。x=5; y=x++*x++; y=--y*--y;
A 529 B 2401 C 1209 D 62517 假设在程序中 a,b,c 均被定义成整型 ,并且已赋大于 1的值 ,则下列能正确表示代数式A 1/a*b*c B 1/(a*b*c) C 1/a/b/(float)c D 1.0/a/b/c18 若有定义 :int a=8,b=5,c;char d= 'A';,则执行语句 c=a/b+d %a+0.5; 后 c的值为___ 。A 2 B 2.5C 3 D 类型不一致,无法计算,编译出错19 在有以下程序:main(){ int i=10,j=1;i=i+j++;printf( "%d,%d ,%d \n ",i ++ ,++j ,i );}执行后输出结果是___。A 12,3,11 B 12 ,2,11 C 11 ,3,11 D 12 ,3,1220 已知 int i=65; ,则 putchar(i);printf( "%d ",i);printf( "%c ",i); 的输出结果为___ 。A A,65,A B 65,65,A C A,A,65 D A,A,A21 已知 int y,a,i=1; , 则语句 printf( "%d,%d ",-i++,(y=a=3.6*3)); 的输出结果为 ___ 。A -1,1 0 B -2,1 .8 C 0,3 D 1,1822 有以下程序:main(){ char a,b,c,d;a= '\'; b= '\xbc ';c= '\0xab '; d= '\023 ';print f("%c %c %c%c\n ",a,b,c,d);}编译时出现错误,以下叙述中正确的是___。A 程序中只有 a= '\';语句不正确 B b= '\xbc ';语句不正确C d= '\023 ';语句不正确 D a= '\';和 c= '\0xab ';语句都不正确二 填空题 (第 1题 2分,其余每题 3分,共 56 分)1 设 x为 int 型变量 ,请写出描述 “ x是偶数 ” 的表达式是 ___。2 已知 scanf( "a=%d,b= %d ,c= %d ",&a,&b,&c); ,若从键盘输入 2、 3、 4三个数分别作为变量 a、 b、 c的值则正确的输入形式是 ___。3 设有语句 int a=3; ,则执行了语句 a+=a-=a*a 后,变量 a的值是 ___。4 以下程序的输出结果是 ___。main(){ int a=-10,b=-3;printf( "%d \n ",- a++);printf( "%d \n ",-a +b);}5 以下程序的输出结果是 ___。main()abc1 的表达式是____。
{ char c;c=0362;printf( "%d \ n",c);}6 以下程序段( n所赋的是八进制数 ) 执行后输出结果是 ___。int m=32767,n=032767 ; printf( "%d,%o \n",m,n);7 字符串 "\\name\\\101ddress\b\xaf "的长度为 : ___ 。8 有以下程序段 :int m=0,n=0; char c='a';scanf( "%d%c%d ",&m,&c,&n);printf( "%d,%c,%d\n ",m,c,n);若从键盘上输入: 10A10< 回车 >,则输出结果是 ___。9 以下程序的输出结果 是 ___。main(){ printf( "%d,%o,%x\n ",10,10,10);printf( "%d,%d,%d\n ",10,010,0x10);printf( "%d,%x\n ",012,012);}10 设 a、 b、 c为整形变量 , 且 a=2 、 b=3 、 c=4 , 则执行完语句 a*=16+(b++)-(++c); 之后 ,变量 a的值为 ___ 。11 以下程序的输出结果为 ___。main(){ int x=023;printf( "%x\n ",--x) ;}12 以下程序的结果为 ___。main(){ int a=2,b=3 ,c,d ;c= (a++)+(a++)+(a++) ;d= (++b)+(++b)+(++b) ;printf( "a= %d c=%d \n ",a,c );printf( "b= %d d=%d \n ",a,d );}13 以下程序main(){ char ch1,ch2,ch3;scanf( "%c%c%c ",&ch1,&ch2,&ch3);printf( "%c%c%c%c%c ",ch1, '#',ch2, '#',ch3);}当输入 ABC 时运行结果为 【 1】 , 当输入 A BC 时运行结果为 【 2】 。14 若有定义: float x;, 以下程序段的输出结果是 ___。x=5.16894;printf( "%f\n ",(int)(x*1000+0.5)/(float)1000);15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序补充完整。
main(){ char ch;【 1】 /* 从键盘输入一个小写字母 */【 2】 /* 将该字母转换为大写字母 */【 3】 /* 输出转换后的结果 */}16 当运行以下程序时,在键盘上从第一列开始输入 9876543210 ↙ (此处 ↙ 代表回车) ,则程序的输出结果是 ___。main(){ int a; float b,c;scanf( "%2d%3f%4f ",&a,&b,&c);printf( "\na=%d,b=%f,c=%f\n ",a,b,c);}17 以下程序的运行结果是 ___。main(){ printf( "%12.5f\n ",123.1234567);printf( "%12f\n ",123.1234567);printf( "%12.8d\n ",12345);printf( "%12.8s\n ","abcdefghij ");}18 运行以下程序时,如从键盘上输入 abcdefg ↙ ,则输出结果是 ___。main(){ char ch1,ch2,ch3;ch1=getchar(); ch2=getchar(); ch3=getchar();putchar(ch1); putchar(ch2); putchar(ch3);putchar( '\n ');}19 运行以下程序时,如从键盘上输入: a=3,b=5 ↙ 35,35.12 ↙ abc ↙ 后,结果是 ___。main(){ int a,b; float x,y; char c1,c2;scanf( "a=%d,b=%d ",&a,&b);scanf( "%f,%e ",&x,&y);scanf( "%c%c%c ",&c1,&c1,&c2);printf( "a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n ",a,b,x,y,c1,c2);}顺序、选择结构程序设计一 单项 选择题 (每题 2分,共 40 分)1 以下程序运行后的输出结果是 ___。main(){ int a=0,b=0;
a=10; b=20; printf( "a+b=%d\n ",a+b);}A a+b=10 B a+b=30 C 30 D 出错2 以下程序运行后的输出结果是 ___。main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf( "%d\n ",d*y);}A 3 B 3.2 C 0 D 3.073 以下程序运行后的输出结果是 ___ 。main(){ double d; float f; long l; int i;i=f=l=d=20/3 ;printf( "%d %ld %.1 f %.1 f\n ",i,l,f,d);}A 6 6 6.0 6.0 B 6 6 6.7 6.7 C 6 6 6.0 6.7 D 6 6 6.7 6.04 以下程序运行后的输出结果是 ___ 。main(){ int a=1,b=2;a=a+b; b=a-b; a=a-b;printf( "%d,%d\n ",a,b);}A 1,2 B 1,1 C 2,2 D 2,15 以下程序运行后的输出结果是 ___。main(){ int x,y,z;x=y=2; z=3;y=x++-1; printf( "%d %d ",x,y);y=++x-1; printf( "%d %d\n ",x,y);y=z---1; printf( "%d %d ",z,x);y=--z-1; printf( "%d %d\n ",z,x);}A 3 1 4 3 B 3 1 3 3 C 3 1 4 3 D 2 1 3 22 4 1 4 2 4 2 2 2 4 1 2 1 3 1 26 以下程序运行后的输出结果是 ___ 。main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf( "%d,%d,%d\n ",x,y,z);}A 2,3,3 B 2,3,2 C 2,3,1 D 2,2,17 以下程序运行后的输出结果是 ___ 。main()
{ int x=4,y=7 ;x-=y; y+=x ;printf( "%d %d\n ",x,y);}A 4 7 B -3 -3 C -3 11 D -3 48 以下程序运行后的输出结果是 ___ 。main(){ unsigned short a=65536; int b;printf( "%d\n ",b=a);}A 65536 B 0 C 1 D -19 以下程序 :#includemain(){ char c1,c2,c3,c4,c5,c6;scanf( "%c%c%c%c ",&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar();putchar(c1); putchar(c2);printf( "%c%c\n ",c5,c6);}程序运行后 , 若从键盘输入 (从第 1列开始 )123< 回车 >45678< 回车 >则输出结果是___。A 1267 B 1256 C 1278 D 124510 设 a、 b和 c都是 int 型变量,且 a=3,b=0,c=5, 则以下值为 0的表达式是 ___。A 'a'&& 'b' B a&&b
c C a&&b&&c D a
b&&c11 在嵌套使用 if 语句时 , C语言规定 else 总是 ___。A 和之前与其具有相同缩进位置的 if 配对B 和之前与其最近的 if 配对C 和之前与其最近不带 else 的 if 配对D 和之前的第一个 if 配对12 若要求在 if 后一对圆括号中表示 a不等于 0的关系 ,则能正确表示这一关系的表达式为___。A a<>0 B !a C a=0 D a13 以下程序运行后的输出结果是 ___。main(){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf( "%d\n ",c);}A 0 B 1 C 2 D 314 若 k是 int 型变量,下面的程序段的输出结果是 。
k=-3;if(k<=0) printf( "#### ")else printf( "&&&& ");A #### B &&&&C ####&&&& D 有语法错误,无输出15 以下程序运行后的输出结果是 ___。main(){ int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf( "%d,%d,%d,%d\n ",a,b,c,d);}A 0,1,2,0 B 0,0,0,3 C 1,1,2,0 D 编译有错16 以下程序运行后的输出结果是 ___。main (){ int x1=1,x2=0,x3=0;if(x1=x2+x3) printf( "**** ");else printf( "#### ");}A **** B 有语法错误 C #### D 无输出结果17 当 a=1,b=3,c=5,d=4 时,执行下面一行程序后, x的值是 ___。if (a<b)if(c<d)x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A 1 B 2 C 3 D 618 下列叙述中正确的是 ___。A break 语句只能用于 switch 语句B 在 switch 语句中必须使用 defaultC break 语句必须与 switch 语句中的 case 配对使用D 在 switch 语句中不一定使用 break 语句19 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的 switch 语句是___。A switch(x) B switch((int)x) ;{ case 1.0:printf( "*\n "); { case 1:printf( "*\n ");case 2.0:printf( "**\n "); } case 2:printf( "**\n "); }C switch(a+b) D switch(a+b){ case 1:printf( "*\n "); { case 1:printf( "*\n ");case 2+1:printf( "**\n "); } case c:printf( "**\n "); }20 以下程序运行后的输出结果是 ___。#includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++;break;case 1:b++;break;
}case 2:a++;b++;break;}printf( "a=%d,b=%d\n ",a,b);}A a=2,b=1 B a=1,b=1 C a=1,b=0 D a=2,b=2二 填空题 (每题 3分,共 30 分)1 以下程序运行后的输出结果是 ___。#includemain(){ int i=010 , j=10;printf( "%d,%d\n ",++i,j--);}2 以下程序运行后的输出结果是 ___。#includemain(){ printf( "%d%d%d\n ",'\0 ','\0 ','\0 '); }3 以下程序运行后的输出结果是 ___。main(){ int i=5,j,k;j=i+++i+++i++;k=(++i)+(++i)+(++i);printf( "i=% 5d j=% 5d\n k=% 5d\n ",i, j,k);}4 下面的程序运行时从键盘上输入 9876543210< 回车 >,程序的输出结果是 ___。main(){ int a; float b,c;scanf( "%2d%2f%2f ",&a,&b,&c);printf( "a=%d,b=%.1f,c=%.0f ",a,b,c);}5 下面程序的输出结果是 ___。main(){ char ch1,ch2;ch1= 'A'+'5'-'3'; ch2= 'A'+'6'-'3';printf( "%d,%c\n ",ch1,ch2);}6 执行下面的语句: printf( "%d\n ",(a=3*5,a*4,a+5)); ,输出是 ___。7 以下程序运行后的输出结果是 ___。main(){ int x=10; printf( "%d,%d\n ",--x,--x); }8 为表示关系 x≥ y≥ z, 应使用 C语言表达式 ___。9 下面的程序段的输出结果是 ___。int x=3;if((x%2)?printf( "**%d ",x):printf( "##%d\n ",x));
10 以下程序运行后的输出结果是 ___。main(){ int m=5;switch (m/2){ case 1: m++;case 2: m+=3;case 5: m+=6;break;default: m-=7;}printf ("%d\n ",m );}三 程序填空 ( 每空 5分 , 共 30 分 )1 下列程序的输出结果是 16.00 ,请填空。main(){ int a=9,b=2;float x= 【 1】 ,y=1.1,z;z=a/2+b*x/y+1/2;printf( "%5.2f\n ",z);}2 完成以下程序,输入变量 a,b,c 的值,判断 a,b,c 能否组成三角形,计算三角形面积。(公式为: )。#include【 2】 ;main(){ int a,b,c;【 3】printf( "please input the value of a,b,c ")scanf( "%d %d %d ", 【 4】 );if( 【 5】 ){ 【 6】s=sqrt(p*(p-a)*(p-b)*(p-c));printf( "Yes,this is a triangle!\n the area is %.2f.\n ",s);}else printf( "No,this is not a triangle !\n ")}循环结构程序设计一 单项选择题 (每题 2分,共 40 分)1 以下程序中, while 循环的循环次数是 ___。main(){ int i=0;2c b a p )c p)(b p)(a p(p s 其 中
while(i<10){ if(i<1) continue;if(i==5) break;i++;}……}A 1 B 10 C 6 D 死循环2 以下程序的执行结果是 ___。main(){ int n=9;while(n>6) { n--; printf( "%d ",n); }}该程序的输出结果是A 987 B 876 C 8765 D 98763 以下程序段, while 循环执行的次数是 ___。int k=0;while(k=1) k++;A 无限次 B 有语法错 C 一次也不执行 D 执行 1次4 以下叙述正确的是 ___。A do-while 语句构成的循环不能用其它语句构成的循环来代替B do-while 语句构成的循环只能用 break 语句退出C 用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环D 用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环5 以下程序的执行结果是 ___。main(){ int a,y;a=10; y=0;do{ a+=2; y+=a;printf( "a=%d y=%d\n ",a,y);if(y>20) break;}while(a=14);}A a=12 y=12 B a=12 y=12a=14 y=16 a=16 y=28a=16 y=20a=18 y=24C a=12 y=12 D a=12 y=12a=14 y=26a=14 y=446 以下程序的执行结果是 ___ 。main(){ int x=23;do{ printf( "%d ",x--); }while(!x);}A 321 B 23 C 不输出任何内容 D 陷入死循环
7 有以下程序段,输出结果是 ___。int x=3;do { printf( "%d ",x-=2); }while(!(- -x));A 1 B 3 0 C 1 -2 D 死循环8 以下程序的输出结果是 ___。main(){ int a=0,i;for(i=1;i<5;i++){ switch(i){ case 0: case 3: a+=2;case 1: case 2: a+=3;default:a+=5;}}printf( "%d\n ",a);}A 31 B 13 C 10 D 209 以下程序的输出结果是 ___。main(){ int i=0,a=0;while(i<20){ for(; ;)if((i%10)==0) break;else i--;i+=11; a+=i;}printf( "%d\n ",a);}A 21 B 32 C 33 D 1110 以下循环体的执行次数是 ___。main(){ int i,j;for( i= 0,j=1 ;i<=j+1;i+=2,j --) printf( "%d \n ",i);}A 3 B 2 C 1 D 011 下列程序的输出结果是 ___ 。main(){ int i,j,m=0,n=0;for(i=0;<2;i++)for(j=0;j<2;j++)if(j>=i) m=1;n++;printf( "%d\n ",n);}A 4 B 2 C 1 D 012 下列程序的输出结果是 ___。main()
{ int i,sum;for(i=1;i<=3;sum++) sum+=i;printf( "%d\n ",sum);}A 6 B 3 C 死循环 D 013 以下程序执行后 sum 的值是 ___。main(){ int i,sum;for(i=1;i<6;i++) sum+=i;printf( "%d\n ",sum);}A 15 B 14 C 不确定 D 014 以下程序执行后的输出结果是 ___。main(){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue; n++; } while(!i);n++;}printf( "n=%d\n ",n);}A n=5 B n=2 C n= 3 D n= 415 下列语句中 , 能正确输出 26 个英文字母的是 ___ 。A for(a= 'a';a<= 'z';printf( "%c",++a )); B for(a= 'a';a<= 'z';) printf( "%c",a);C for(a= 'a';a<= 'z';printf( "%c",a++ )); D for(a= 'a';a<= 'z';printf( "%c",a));16 以下程序执行后的输出结果是 ___。main(){ int x=1,y=1;while (y<=5){ if(x>=10) break;if(x%2==0){ x+=5; continue; }x-=3; y++ ;}printf( "%d ,%d ",x,y );}A 6,6 B 7,6 C 10,3 D 7,317 以下程序 执行后的输出结果是 ___ 。main(){ int a=5;while(!(a-->5)){ switch(a){ case 1:a++;case 4:a+=4;case 5:a+=5;break;default:a-=5;
}}printf( "%d\n ",a);}A 12 B 7 C 5 D 1318 对于下面的 for 循环语句,可以断定它执行 ___ 次循环 。for(x=0,y=0;(y!=67)&&(x<5);x++) printf( "---- ");A无限 B 不定 C 5次 D 4次19 在执行以下程序时,如果从键盘上输入: ABCdef ,则输出结果为 ___。#include "stdio.h "main(){ char ch;while((ch=getchar())!= '\n '){ if(ch>= 'A'&& ch<= 'Z') ch=ch+32;else if(ch>= 'a'&& ch<= 'z') ch=ch-32;printf( "%c ",ch);}printf( "\n ");}A ABCdef B abcDEF C abc D DEF20 当执行以下程序时, ___。int a=1;do{ a=a*a; }while(!a);A 循环体将执行 1次 B 循环体将执行 2次C 循环体将执行无限次 D 系统将提示有语法错误二 填空题 (每空 3分,共 33 分)1 若输入字符串: abcde ,则以下 while 循环体将执行 ___ 次。while((ch=getchar())== 'e') printf( "*");2 以下 while 循环执行的次数是 ___。k=0; while(k=10) k=k+1;3 下列程序的输出结果是 ___。main(){ int x=0,y=5,z=3;while(z-->0 && ++x<5) y=y-1;printf( "%d,%d,%d\n ",x,y,z);}4 下面程序的功能是:计算 1到 10 之间的奇数之和及偶数之和,请填空。main(){ int a,b,c,i;a=c=0;for(i=0;i<=10;i+=2){ a+=i;_ 【 1】 ;c+=b;}printf( "偶数之和 =%d\n 奇数之和 =%d\n ",a, 【 2】 );
}5 下面程序的功能是:输出 100 以内能被 3整除且个位数为 6的所有整数,请填空。main(){ int i,j;for(i=0; _ 【 1】 ; i++){ j=i*10+6;if( _ 【 2】 )continue;printf( "%d\n ",j);}}6 以下程序的输出结果是 ___ 。main(){ int s, i;for(s=0,i=1;i<3;i++,s+=i);printf( "%d\n ",s);}7 要使以下程序段输出 10 个整数 , 请填入一个整数。for(i=0;i<= ___ ;printf( "%d \n ",i+=2)) ;8 程序的功能是根据以下近似公式求 π 值 :请填空完成求 π 的功能。#include "math.h "main(){ int n=30000; double s=0.0; long i;for(i=1;i<=n;i++) s=s+ _ 【 1】 ;printf( "pi=%f\n ",_ 【 2】 );}三 程序填空题 (每空 3分,共 27 分)1 下列程序是求 的值。#include "stdio.h "main(){ int i=2; float sum=1;;while( 【 1】 ){ sum=sum+1.0/i; 【 2】 ; }printf( "sum=%f\n ", 【 3】 );}2 以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为负数时,结束输入。main(){ float x,max,min;scanf( "%f ",&x);max=min= 【 1】 ;do{ if(x>max) max=x;5014121 1n n 13 312 21 1 62
if(x<min) 【 2】 ;scanf( "%f ",&x);} while( 【 3】 );printf( "%f,%f ",max,min);}3 下面的程序用来求出所有的水仙花数。所谓水仙花数是指一个 3位数,它的各位数字的立方和恰好等于它本身。main(){ int n,i,j,k;for(n=100; 【 1】 ) /* 判断 3位数 n是否是水仙花数 */{ i=n/100; /* i是 n的百位上的数字 */j= 【 2】 ; /* j是 n的十位上的数字 */k=n%10; /* k是 n的个位上的数字 */if( 【 3】 ) printf("%d\n",n);}}
基础知识
一 单项选择题(每题2分,共44分)
二 填空题(第1题2分,其余每题3分,共56分)
顺序、选择结构程序设计
一 单项选择题(每题2分,共40分)
二 填空题(每空3分,共30分)
三 程序填空题(每空5分,共30分)
1 【1】6.6
2 【2】#include<math.h>
【3】float s,p;
【4】&a,&b,&c
【5】a+b>c && b+c>a && c+a>b && a>0 && b>0 &&
c>0
【6】p=(a+b+c)/2.0;
循环结构程序设计
一 单项选择题(每题2分,共40分)
二 填空题(每空3分,共33分)
三 程序填空题(每空3分,共27分)
1 【1】i<=50 【2】i=i+2 【3】sum
2 【1】x 【2】min=x 【3】x>=0
3 【1】n<=999;n++ 【2】n/10%10 【3】n==i*i*i+j*j*j+k*k*k
举报/反馈

我要回帖

更多关于 c语言基础知识题库 的文章