收藏 分销(赏)

c语言复习题集.doc

上传人:仙人****88 文档编号:9311166 上传时间:2025-03-21 格式:DOC 页数:40 大小:535.50KB
下载 相关 举报
c语言复习题集.doc_第1页
第1页 / 共40页
c语言复习题集.doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述
C程序设计练习题 C语言程序设计第1~3章练习题 一、选择题 1、一个C语言程序总是从____ A、主过程开始执行   B、主函数开始执行 C、子程序开始执行   D、主程序开始执行 2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_ A、4    B、16     C、32    D、52 3、下面四个选项中,均是C语言关键字的选项是____ A、auto enum include B、switch typedef continue C、signed union scanf D、if struct type 4、下面四个选项中,均是合法整型常量的选项是____ A、160 -0xffff 011  B、-0xcdf 01a 0xe C、-01 986,012 0668  D、-0x48a 2e5 0x 5、下面四个选项中,均是合法浮点数的选项是___ A、+1e+1 5e-9.4 03e2 B、-.60 12e-4 -8e5 C、123e 1.2e-.4 +2e-1 D、-e3 .8e-4 5.e-0 6、下面四个选项中,均是合法转义字符的选项是____ A、'\'' '\\' '\n'   B、'\' '\017' '\"' C、'\018' '\f' 'xab' D、'\\0' '\101' 'xlf' 7、下面正确的字符常量是____ A、'\X17' B、'\80' C、'\\' D、"\n" 8、下面四个选项中,均是正确的八进制数和十六进制数的选项是____ A、-10 0x8f -011 B、0abc -017 0xc C、010 -0x11 0xf1 D、0a12 -0x123 -0xa 9、下面四个选项中,均是正确的数值常量或字符常量的选项是____ A、0.0 0f 8.9e '&' B、"a" 3.9E-2.5 1e1 '\"' C、'3' 011 0xFF00 0a D、+001 0xabcd 2e2 50. 10、若有代数式,则正确的C语言表达式是____ A、2*ln(x)*cos(x)/3*x B、2*ln(x)*cos(x)/(3*x) C、2*log(x)*cos(x)/3*x D、2*log(x)*cos(x)/(3*x) 11、若有说明语句:char ch1='\065';char ch2="2";char ch3='2';则:ch1中____,ch2中____,ch3中____ A、包含1个字符   B、包含2个字符 C、包含3个字符 D、字符个数不确定,说明不正确 12、若有运算符:>、*=、?:、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)____ A、*=→?:→%→>→sizeof B、?: →*=→>→%→sizeof C、*=→>→?: →sizeof→% D、*=→?: →>→%→sizeof 13、若有以下类型说明语句:char a; int b; float c; double d; 则表达式a*b+d-c的结果类型为____ A、float  B、char  C、int  D、double 14、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是____ A、a=9+b+c=a+9   B、a=9+b;c=a+9; C、a=(9+b,b++)   D、a=9+b++=a+7 15、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为____   A、D  B、68 C、一个不确定的值 D、C 16、以下运算符中优先级最高的运算符是____ A、&&  B、++  C、?:  D、!= 17、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是___ A、2.500000   B、2.7500000 C、3.500000   D、0.000000 18、sizeof(float)是____ A、双精度型表达式 B、一个整型表达式 C、一个函数调用  D、一个不合法的表达式 19、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____ A、y=(y*100+0.5)/100.0 B、x=y*100+0.5,y=x/100.0 C、y=y*100+0.5/100.0 D、y=(y/100+0.5)*100.0 20、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是____ A、0~255      B、0~65535 C、-32768~+32767  D、-256~+255 21、若有以下定义,则能得到值为3的表达式是____(int m=7,n=12) A、n%=(m%=5)   B、n%=(m-m%5) C、n%=m-m%5   D、(n%=m)-(m%=5) 22、若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是____ A、4   B、3   C、2   D、1 23、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是___,x的值是___ A、20   B、100  C、表达式不正确  D、45 24、putchar函数可以向终端输出一个____ A、整型变量值  B、实型变量值 C、字符串    D、字符或字符型变量值 25、若有以下变量说明和数据的输入方式,则正确的输入语句为('└─┘'代表空格)____ 变量说明:float x1,x2; 数据的输入方式:4.52<回车>         3.5<回车> A、scanf("%f,%f",&x1,&x2); B、scanf("%f%f",&x1,&x2); C、scanf("%3.2f└─┘%2.1f",&x1,&x2); D、scanf("%3.2f%2.1f",&x1,&x2); 26、若运行以下程序时,从键盘输入25,13,10<回车>,则输出结果为____ main( ) { int a1,a2,a3; scanf("%d%d%d",&a1,&a2,&a3); printf("a1+a2+a3=%d\n",a1+a2+a3); } A、a1+a2+a3=48   B、a1+a2+a3=25 B、a1+a2+a3=10   D、不确定值 27、已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是____ A、132<回车>     B、a=1b=3c=2<回车> C、1<回车>3<回车>2<回车> D、a=1<回车>b=3<回车>c=2<回车> 28、以下能正确定义整型变量x、y和z并为其赋初值5的语句是____ A、int x=y=z=5;     B、int x,y,z=5; C、int x=5,y=5,z=5;   D、x=5,y=5,z=5; 29、执行下面程序段后,x的值是____ int x; printf("%d\n",(x=3*5,x+5)); A、10  B、15  C、20  D、5 30、下面程序段的输出结果是____ int a=023; printf("%d\n",--a); A、23  B、17  C、18  D、24 31、已知ch是字符型变量,则不正确的赋值语句是____ A、ch=5+9;     B、ch='\0'; C、ch='7'+'9';    D、ch='a+b'; 32、设x,y是float型变量,则不正确的赋值语句是____ A、++x;       B、y=int(5); C、x*=y+1;     D、x=y=0; 33、设有说明:double b=0.5,c=1.5; int a=10; 则正确使用了C语言库函数的赋值语句是____ A、c=asin(c)+fabs(a); B、b=log10(b)+pow(b); C、c=sqrt(b-c); D、a=(int)(atan2((double)a,b)+exp(b-0.2)); 34、以下程序段的输出结果是____ int i=1,j=4,k=2; float x=5.5,y=9.0,z; z=(i+j)/k+sqrt((double)y)*1.2/k+x; printf("%f\n",z); A、9.800000   B、9.300000 C、8.500000   D、8.000000 35、若a为int类型变量,则执行以下程序段后a的值为____ a=5; a*=a/=a++;   A、2  B、1  C、40  D、3 36、若a和b均为int型变量,则执行以下程序断后x的输出是____ x=15;y=15; printf("%d\n",x%=(y%=2)); A、0  B、1  C、6  C、12 37、若x为unsigned int类型变量,则执行以下程序段后x的值是____ x=65535; printf("%d\n",x); A、65535  B、1  C、无定值  D、-1 38、以下语句的执行结果是____ printf("%d\n",NULL); A、1  B、0  C、-1  无定值 39、若x为int类型变量,则执行以下程序段后的输出结果是____ x=0xDEF; printf("%4d,%4o,%4x\n",x,x,x); A、3567,6757,def   B、3567,6757,xdef C、3567,06757,0xdef  D、3567,6757,0def 40、若a、b、c均为int型变量,则执行以下程序段后的输出结果为____ b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d\n",a,b,c); c=(a=10,b=5,a+b); printf("a=%d,b=%d,c=%d\n",a,b,c); A、a=10,b=15,c=10  B、a=10,b=10,c=10 a=10,b=5,c=10 a=10,b=5,c=10 C、a=10,b=10,c=10  D、a=10,b=10,c=10 a=10,b=5,c=15    a=10,b=5,c=5 41、若a1、a2、a3、a4均为char类型变量,则执行以下程序段后的输出结果为____ a1='1'; a2='2'; a3='3'; a4='4'; printf("%1c\n",a1); printf("%2c\n",a2); printf("%3c\n",a3); printf("%4c\n",a4); A、1  B、1 C、1 D、输出格式的描述符不正确 2 2 02 3 3 003 4 4 0004 42、执行语句printf("The program's name is c:\\tools\book.txt");后的输出是____ A、The program's name is c:tools book.txt B、The program's name is c:\tools book.txt C、The program's name is c:\\tools book.txt D、The program's name is c:\toolook.txt 43、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是____ scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d); printf("%4d+%3d+%2d+%1d",a, b, c, d); A、1234123121<回车> B、1234123412341234<回车> C、1234+1234+1234+1234<回车> D、1234+123+12+1<回车> 44、设c1、c2均是char类型变量,则以下不正确的函数调用是____ A、scanf("c1=%cc2=%c",&c1,&c2); B、getchar( ) C、putchar(c2);     D、putchar(c1,c2) 45、逻辑运算符两侧运算对象的数据____ A、只能是0或1   B、只能是0或非0正数 C、只能是整型或字符型数据 D、可以是任何类型的数据 46、判断char型变量c1是否为大写字母的正确表达式是____ A、'A'<=c1<='Z'    B、(c1>='A')&(c1<='Z') C、(c1>='A')&&(c1<='Z') D、('A'<=c1) AND ('Z'>=c1) 47、执行以下程序段后的a值是___,b的值是___,c的值是___ int a=5,b=6,c=1,x=2,y=3,z=4; c=(a=c>x)&&(b=y>z); A、0  B、6  C、1  D、5 48、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是____ A、'i'&&'j'      B、i<=j C、i||j+k&&j-k     D、!((i<j)&&!k||1) 49、设ch是char类型变量,其值是A,则以下表达式的值是____ ch=(ch>='A'&&ch<='Z')?(ch+32):ch A、Z  B、A  C、a  D、z 50、若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是____ A、num%2==1     B、!(num%2==0) C、!(num%2)     D、num%2 二、填空题 1、C源程序的基本单位是____。 2、一个C语句中至少应包含一个____。 3、在C语言中,输入操作可以由库函数____完成,输出操作可以由库函数____完成。 4、若x是int型变量,且x=6,则表达式x%2+(x+1)%2的值为____。 5、若a、b、c均是int型变量,则执行表达式c=(a=5)-(b=2)+a后,c的值为____。 6、若有定义:int y=7; float x=2.5,z=4.7;,则表达式x+(int)(y/3*(int)(x+z)/2)%4的值为____。 7、若采用十进制数的表示形式,则077为___,0111为___,0x29为___,0xab为___。 8、设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为____。 9、若有说明int x=10,y=20;请写出下面各printf语句对应的输出结果。 ①printf("%3d\n",x+y);  ____ ②printf("%3o\n",x*y);  ____ ③printf("%3o\n",x%y);  ____ ④printf("%3x\n",(x%y,x-y,x+y)); ____ 10、设有以下变量说明: int a=5,b=10; float x=3.5,y=10.8; char c1='A',c2='B'; 请根据以下输出格式和结果,完成printf语句中的填空。 ①a=5,b=10,x+y=14.3 printf("________",_____); ②x-y=-7.3└─┘a-b=-5 printf("________",_____); ③c1='A' or 65(ASCII) └─┘c2='B' or 66(ASCII) printf("________",_____); 11、若有说明: int a=123; float b=456.78; double c=-123.45678; 请写出以下各printf语句的输出结果。 ①printf("%.3f%.3e%lf\n",b,b,c); _____ ②printf("%8.3f%8.3e%g\n",b,b,c); _____ ③printf("%u%-10.3f%-10.3e\n",a,b,c); ___ 12、若a1和a2都是double型变量,且a1的初值为3.0,a2的初值为2.0,则表达式pow(a2,fabs(a1))的值为____。 13、假设变量x和y均为整型,以下语句可以不借助任何变量把x、y中的值进行交换。 请填空。   x+=__; y=x-__; x-=__; 14、已有定义int m; float n,k; char ch1,ch2;,为使m=3, n=6.5, k=12.6, ch1='a', ch2='A',对应的scanf语句是___________________,输入数据的方式是___________。 15、已有定义int a,b; float k;,为将-10赋给a,将12赋给b,410.34赋给k;则对应以下scanf语句的数据输入形式是________。  scanf("%o%x%e",&a,&b,&k); 16、在C语言中,&作为双目运算符时表示的是___,而作为单目运算符时表示的是__。 17、设x、y、z均为int型变量,且x=3, y=-4, z=5,请写出下面每个表达式对应的结果。 ①、(x&&y)==(x||z)        ____ ②、!(x>y)+(y!=z)||(x+y)&&(y-z) ____ ③、x++-y+(++z) ____ 18、设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。 ①、x或y中有一个小于z __________________ ②、x、y和z中只有两个为负数 __________________ ③、y是奇数  __________________ 19、以下程序的输出结果为____ main( ) { int x,y,z=246; x=z/100%9; y=(-1)&&(-1); printf("%d,%d\n",x,y); } C语言程序设计第4章练习题 一、选择题 51、以下正确的if语句是____ A、if (n>0) printf("%f",n) printf("%f",-n); B、if (n>0) { n=n+m; printf("%f",n); } else printf("%f",-n); C、if (n>0) { n=n+m; printf("%f",n); }; else printf("%f",-n); D、if (n>0) { n=n+m; printf("%f",n) }; else printf("%f",-n); 52、以下程序____     main( )    { int x1=3, x2=0, x3=0;       if(x1=x2+x3) printf("* * * *"); else printf("# # # #"); } A、输出:* * * *   B、输出:# # # # C、存在语法错误   D、无输出结果 53、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与__ A、缩排位置相同的if配对 B、其之前最近且不带else的if配对 C、其之前最近的if配对 D、第一个if配对 54、若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是____     w=1; x=2; y=3; z=4;     k=(w<x)?w:x;     k=(k<y)?k:y;     k=(k<z)?k:z; A、1   B、2   C、3   D、4 55、下面程序段所表示的数学函数关系是____     x=-1;     if (a!=0) if (a>0) x=1; else x=0;    -1 (a<0)      1 (a<0) A、x= 0 (a=0) B、x= -1 (a=0) 1 (a>0) 0 (a>0) 0 (a<0) -1 (a<0) C、x= -1 (a=0)   D、x= 1 (a=0) 1 (a>0) 0 (a>0) 56、以下关于switch语句和break语句的描述中正确的是____ A、在switch语句中必须使用break语句 B、break语句只能用于switch语句体中 C、break语句只能用于循环语句中 D、在switch语句中使用break语句或continue语句的作用相同 57、设有说明:int a=1,b=0; 则执行以下语句后的输出结果是____   switch(a)    { case 1:        switch(b)         { case 0: printf("** 0 **\n"); break;          case 1: printf("** 1 **\n");break;         } case 2: printf("** 2 **\n"); break;    } A、** 0 ** B、** 0 ** ** 2 ** C、** 0 **       D、switch语句中存在语法错误 ** 1 **         ** 2 ** 58、设有程序段____     int x=10;     while (x=0)       x=x-1; A、while循环执行10次  B、循环是无限循环   C、循环体语句一次也不执行 D、循环体语句只执行一次 59、语句while (!y)中的表达式 !y 等价于____   A、y==0 B、y!=1  C、y!=0  D、y==1 60、以下关于do-while循环不正确的描述是___   A、d0-while的循环体至少执行一次   B、do-while循环由do开始,用while结束,在while (表达式)后面不能写分号   C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作   D、do-while的循环体可以是复合语句 61、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是____     for (y=100; x!=y; ++x,y++)       printf("****\n");   A、循环体只执行一次  B、是无限循环   C、循环体一次都不执行 D、for语句中存在语法错误 62、以下程序段中的do-while循环____     m=-1;     do      { m=m*m;      }while(!m);   A、是死循环   B、执行二次  C、执行一次    D、有语法错误 63、以下关于for循环的正确描述是____   A、for循环只能用于循环次数已经确定的情况   B、for循环是先执行循环体语句,后判断表达式   C、在for循环中,不能用break语句跳出循环体  D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 64、语句for (表达式1; ; 表达式3)等价于____   A、for (表达式1; 0 ; 表达式3)   B、for (表达式1; 1 ; 表达式3)   C、for (表达式1; 表达式1; 表达式3)   D、for (表达式1; 表达式3; 表达式3) 65、若k为整型变量,则以下for循环的执行次数是____     for (k=2; k==0; )       printf("%d",k--);   A、无限次 B、0次  C、1次  D、2次 66、以下程序段的执行结果是____     int x=-3;     do      { printf("%d\n", x++);      }while(!x);   A、-3 D、-3   B、-2 -2   C、陷入死循环 -1 67、执行以下程序段后,y的值是____,x的值是____     int x=1, y=10;     do      { y-=x;        x++;      }while(y--<0);   A、9 B、8 C、-2 D、2  E、4 F、3 68、执行以下程序段后a的值是____,b的值是____   int a, b;   for (b=1,a=1; b<=50; b++)    { if (a>=10) break;     if (a%2==1)      { a+=5;      continue;      }     a-=3;   }   A、10 B、6 C、7 D、8 E、4 69、以下程序段的执行结果是____   int a, b;   for (a=1; a<5; a+=2)    { for (b=1; b<5; b++)      printf("%2d",a*b);     if (b==5)      printf("\n");    }   A、 1 2 3 4   B、1 2 3 4 3 6 9 12 6 9 12 15   C、 2 3 4 6 9 12   D、 2 3 4    6 9 12    10 15 20 70、以下程序段中是死循环的是____   A、int n=1;     B、int n=1;     while (!n) do { n--;      n++; }while(n);   C、int n=1; D、for (n=5; n<1; ) ;     do { n++;      }while(n); 71、下面程序的运行结果是____   main( )   { int m=0;    while (m<=2)      { m++;      printf("%d\n", m);      }   }   A、1         B、 1    2   C、1 D、1    2 2    3 3    4 72、以下能正确计算1×2×3×…×10的程序段是____     A、do B、do    { k=1; n=1; { k=1; n=0;    n=n*k; n=n*k;       k++; k++;    }while(k<=10); }while(k<=10);   C、k=1; n=1; D、k=1; n=0;    do do     { n=n*k; { n=n*k; k++; k++; }while(k<=10); }while(k<=10); 73、下面程序的功能是计算1至10之间的奇数之和以及偶数之和。请选择填空。   main( )   { int x, y, z, k;    x=z=0;    for (k=0; k<=10; k+=2)    { x+=k;    ________;    z+=y;    }    printf("偶数之和 = %d\n", x);    printf("奇数之和 =%d\n", ________);   }   ①、A、y=k-- B、y=k+1 C、y=k++ D、y=k-1   ②、A、z-10 B、z C、z-11 D、z-y 74、下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。 (提示:只要算出1000!中含有因数5的个数即可。)   for (m=0,n=5; n<=1000; n+=5)    { t=n;    while (________)       { m++; t=t/5; }     }   A、t%5 B、t=t%5==0 C、t%5==0 D、t%5!=0 75、若有以下程序段:   for (m=1; m<=100; m++)    { scanf("%d", &y);    if (y<0)    continue;    printf("%3d", m); } 正确的描述是____   A、当y<0时整个循环结束   B、y>=0时什么也不输出   C、printf函数永远也不执行   D、最多允许输出100个非负整数 76、以下程序段等价于____   for (k=100; k<=200; k++)    { if (k%3==0)       continue;    printf("%4d", k);    }   A、for (k=100; (k%3)&&k<=200; k++)    printf("%4d", k);   B、for (k=100; (k%3)||k<=200; k++)    printf("%4d", k);   C、for (k=100; k<=200; k++)    if (k%3!=0) printf("%4d", k);   D、for (k=100; k<=200; k++)    { if (k%3)    printf("%4d", k);    else    continue;    break;    } 二、填空题 20、以下程序的功能是:输入三个整数n1、n2、n3,按从大到小的顺序进行输出。请填空。   main( )   { int n1, n2, n3, temp;    scanf("%d%d%d", &n1, &n2, &n3);    if (______)    { temp=n2; n2=n3; n3=temp; }    if (______)    { temp=n1; n1=n2; n2=temp; }    printf("%d, %d, %d\n", n1, n2, n3); } 21、以下程序的功能是:输入一个小写字母,按字母排列顺序后移5个位置后输出(如把'a'变为'f', 'w'变成'b')。请填空。   #include "stdio.h"   main( )   { char c1;    c1=getchar( );    if (c1>='a' && c1<='u')     ______;    else if (c1>='v' && c1<='z')      ______;    putchar(c1);   } 22、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请填空。   main( )   { char ch1;    scanf("%c", ch1);    if (________________)    ch1=ch1+32;    else if (ch1>='a' && ch1<='z')        ________;    printf("%c", ch1);   } 23、阅读下面的程序并回答问题。   main( )   { int m, n, x, y;    scanf("%d, %d", &x, &y);    m=1;    n=1;    if (x>0) m=m+1;    if (x>y) n=m+n;    else if (x==y)    n=5;    else        n=2*m;    printf("m=%d, n=%d", m, n);  } 问题:为了使输出n=4,x的输入值应当为______,y的输入值应当为____。 24、以下程序的功能是:根据输入的三条边的值判断是否能组成三角形,若能组成则输出三角形的面积和三角形的类型。请填空。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服