C程序习题 总复习
期末C程序考试复习题答案

29、设有程序段
int a=8;
while(a=0) a++;
则下面描述正确的是( C )。
A、while循环执行10次 B、循环是无限循环
C、循环体一次也不执行 D、循环体只执行一次
C、ch=‘7’+‘9’ D、ch=7+9
2、以下4组用户定义标识符中,全部合法的一组是 (A ) 。
A、s_5 B、If C、txt D、int
about -max REAL k_2
24、下列形式的常数中,C程序不允许出现的是( D )。
A、 0.98 B、 6e4 C、 77.6e-2 D、 E8
25、分析以下程序:
void main( )
{ int x=5,a=0,b=0;
if(x=a+b) printf("** **\n");
( A )
A、1 0 B、0 1 C、非0 非0 D、1 1
22、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C )。
[转] 期末C程序考试复习题答案(选择题和填空题) 转载自 万洪超 转载于2010年06月18日 16:37 阅读(2) 评论(0)
分类: 转转 举报
一、单选题:
1、已知ch是字符型变量,下面不正确的赋值语句是( B )。
A、ch=‘\0’ B、ch=‘a+b’
A、1 B、2 C、-1 D、-2
5、已知:int i=5;执行语句i+=++i;后,i的值是( C )
C程复习资料

补充习题解答1:1.C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A、‘{‘和’}’B、‘[‘和’]’C、“/*”和”*/”D、“*/”和”/*”答案:C,这题大家基本都没问题。
2.下列运算符中,优先级最低的是_____。
A、*B、!=C、+D、=答案:D。
本题考察的是运算符的优先级问题,顺序为:初等运算符>单目运算符>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符>逗号运算符.请大家记住这个顺序。
另外,大家在写程序的时候并不能够准确地确定优先级的时候,多加几对括号就可以了,因为在这种情况下读你程序的人可能也不确定优先级。
3.下列运算符中,优先级最低的是:_____A、*B、+C、==D、=答案:D,理由同上。
4.已知字符‘a’的ASCII码为97 ,执行下列语句的输出是_____。
printf ("%d, %c", ’b’, ’b’+1 ) ;A、98, bB、语句不合法C、98, 99D、98, c答案:D。
每一个字符都对应一个整型数值的ASCII码,故可以将字符以int型输出,反过来,也可以将符合ASCII码的int型数值进行字符。
关键在于输出格式控制。
5.有程序段如下:Int k=10;While(k=0)K=k-1;以下选项中描述正确的是_____。
A. 语句“k=k-1;”被执行10次。
B. 语句“k=k-1;”被执行1次。
C. 语句“k=k-1;”被执行无限多次。
D. 语句“k=k-1;”一次也不执行。
答案:D。
while循环体执行的条件为:while判断条件为真(非0为真0为假,特别注意,负数也为真)。
而本题的判断条件为k=0这个表达式的值,为0,故原题等价于while(0)。
所以在写程序的时候要特别避免类似的逻辑错误。
这两题很多同学有错。
6.写出判断一个年份为闰年的C语言表达式:______________________。
C程序设计复习题(二)

C程序设计复习题(二)C程序设计复习题(二)一、选择1、下面程序的运行结果是______#include#includemain(){ char a[80]=”AB”,b[80]=”LMNP”;int i=0;strcat(a,b);while(a[i++]!=’\0’) b[i]=a[i];puts(b);}A)LB B)ABLMNP C)AB D)LBLMNP2、下面程序的功能是将字符串s中所有的字符c删除。
请选择填空。
#includemain(){ char s[80];int I,j;gets(s);for(i=j=0; s[i]!=’\0’;I++)if(s[i]!=’c’)_________;s[j]=’\0’;puts(s);}A) s[j++]=s[i]; B)s[++j]=s[i]; Cs[j]=s[i];j++; D) s[j]=s[i];3、有下面的程序段:char a[3],b[]=”China”;a=b;printf(“%s”,a);则_______________。
A)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错4、下面程序段的运行结果是_______char a[7]=”abcdef”;char b[14]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)<空格> B)\0 C)e D)f5、以下正确的说法是______在C语言中:A) 实参和与其对应的形参各占用独立的存储单元;B) 实参和与其对应的形参共占用一个存储单元;C) 只有当实参和与其对应的形参同名时才共同占用存储单元;D) 形参是虚拟的,不占用存储单元。
6、以下程序的运行结果是______fun(int x){ if(x/2>0) fun(x/2-2);printf(“%d”,x);}main(){ fun(20);printf(“\n”);}A)20 8 2 -1 B)2 8 20 C)8 D)-1 2 8 207、以下正确的说法是________如果在一个函数的复合语句中定义了一个变量,则该变量______A) 只在该复合语句中有效B) 在本程序范围内均有效C)在该函数中有效D) 为非法变量8、若使用一维数组名作为函数实参,则以下正确的说法是______A)必须在主调函数中说明此数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组与形参数组名必须一致9、若有定义:int a[4][6];则能正确表示a数组中任一元素a[i][j](此处0≤i<4, 0≤j<6)地址的表达式是________。
C程序设计复习题

二、计算题 1、 2.8 2、5.5 三、选择题 C A D C D B
3、a=60
4、4.5
C B C
A D
03. 分支、循环控制程序
一、 计算题
1.a=3,b=4,c=5,a+b>c&&b= =c 2.3>5?3:5<8?25:40 3.设 a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后 m,n 的值?
二、 计算题
1. 2.8+7%3*11%2/4 2. 5/2+5.0/2+7%6 3. a=12,a*=2+3 4. 设 int b=7;float a=2.5,c=4.7;求下面表达式的值。 5. a+(int)(b/2*(int)(a+c)/2)%4
三、 选择题
1. 在 C 语言中,每个语句和数据定义是用( A)句号 B)逗号 下列字符串是标识符的是( ) 。 A)_HJ B)9_student )结束。 C)分号 D)括号
五、 将以下语句改写成 switch 语句:
if((t>0)&&(t<=10)) if((t>=3)&&(t<=6)) x=2; else if((t>1)||(t>8)) x=3; else x=1; else x=0; 参考答案: 一、计算题 1、0 2、25 二、选择题 B C D
3、m=0,n=1
超文本过程
(D)
子程序
5. 下列说法正确的是( ) (A) 一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 (B) 一个函数的函数体必须要有执行部分,可以没有变量定义 (C) 一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 (D) 以上都不对 6. 下列说法正确的是( ) (A) main 函数必须放在 C 程序的开头 (B) main 函数必须放在 C 程序的最后 (C) main 函数可以放在 C 程序的中间部分,即在一些函数之前在另一个函数之后, 但在执行 C 程序时是从程序开头执行的 (D) main 函数可以放在 C 程序的中间部分,即在一些函数之前在另一些函数之后, 但在执行 C 程序时是从 main 函数开始的 7. 下列说法正确的是( ) (A) 在执行 C 程序时不是从 main 函数开始的 (B) C 程序书写格式严格限制,一行内必须写一个语句 (C) C 程序书写格式自由,一个语句可以分写在多行上 (D) C 程序书写格式严格限制,一行内必须写一个语句,并要有行号
C程序设计复习题1

复习题1、一个C语言程序是由____B____。
A、函数首部和函数体组成B、一个主程序和若干子程序组成C、若干过程组成D、若干子程序组成2、属于合法的C语言长整型常量的是_____B_____ 。
A、5876273B、0LC、2E10D、(long)58762733、以下合法的赋值语句是____A______ 。
A、x=y=100;B、d――C、x+y;D、c=int(a+b)4、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为____B____。
A、1B、 2C、3D、 45、若运行时给变量x输入12,则以下程序的运行结果是___D_____。
int main(){int x,y;scanf(“%d”,&x);y=x>12 ? x+10 : x-12;printf(“%d\n”,y);return 0 ;}A、出错B、 10C、 22D、 06、若有以下类型说明语句:char w;int x;float y;double z; 则表达式w*x+z-y 的结果为____B____类型。
A、floatB、doubleC、intD、char7、已知ch是字符型变量,下面不正确的赋值语句是____C_____。
A、ch = ’7’+’9’ ;B、ch = ’\n’;C、ch = “a”;D、ch = 5+7;8、若定义x为double型变量,则能正确输入x值的语句是____C_____。
A、scanf(“%f”,x);B、scanf(“%f”,&x);C、scanf(“%lf”,&x);D、scanf(“%5.1f”,&x);9、若运行时输入:12345678↙,则下列程序运行结果为____A_____。
int main ( ){ int a,b;scanf(“%2d%2d”,&a,&b);printf(“%d\n”,a+b);return 0;}A、46B、579C、569010、设定义“int x=3,y=4,z=1”则表达式!(x+y)+z-1&&y+z/2的值是:_____D_____。
C语言复习题整理

第2部分C语言程序设计习题与解答题解1 绪论1.1 习题一、选择题1.一个完整的可运行的C源程序中(B )。
A.可以有一个或多个主函数B.必须有且仅有一个主函数C.可以没有主函数D.必须有主函数和其他函数2.构成C语言源程序的基本单位是(D )。
A.子程序B.过程C.文本D.函数3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序( D )。
A.总是从max( )函数开始执行B.写在前面的函数先开始执行C.写在后面的函数先开始执行D.总是从main( )函数开始执行4.C语言规定,一个C源程序的主函数名必须为(C )。
A.program B.include C.main D.function5.下列说法正确的是(C)。
A.在书写C语言源程序时,每个语句以逗号结束B.注释时,'/'和'*'号间可以有空格C.无论注释内容的多少,在对程序编译时都被忽略D.C程序每行只能写一个语句6.C语言源程序文件的后缀是( C ),经过Compile后,生成文件的后缀是( A ),经过Build后,生成文件的后缀是(B)。
A..obj B..exe C..c D..doc7.Visual C++ 6.0 IDE的编辑窗口的主要功能是(A ),输出窗口的主要功能是(D ),调试器(Debug)的主要功能是(C)。
A.建立并修改程序B.将C源程序编译成目标程序C.跟踪分析程序的执行D.显示编译结果信息(如语法错误等)8.在Visual C++ 6.0开发环境下,C程序按工程(project)进行组织,每个工程可包括(D)C/CPP源文件,但只能有( A )main 函数。
A.1个B.2个C.3个D.1个以上(含1个)9.调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为(A )。
而某个“计算2的平方”的程序在调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为(D)。
(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言程序设计复习题

C 语言程序设计复习题一、单项选择题1.以下关于C 程序的说法中错误的是( D )。
A )必须有一个且只能有一个主函数B )可以有任意多个不同名的函数C )必须用main 作为主函数名D )主函数必须放在其他函数之前2.以下叙述中正确的是(A )。
A )C 程序中注释部分可以出现在程序中任意合适的地方B )花括号“{”和“}”只能作为函数体的定界符C )构成C 程序的基本单位是函数,所有函数名都可以由用户命名D )分号是C 语句之间的分隔符,不是语句的一部分3.以下叙述中正确的是( C )。
A )C 程序的基本组成单位是语句B )C 程序中的每一行只能写一条语句C )简单C 语句必须以分号结束D )一个C 语句必须在一行内写完4. 下列关于C 程序的说法错误的是( B )。
A )一个程序必须有一个main 函数B )函数首部后面必须有分号C )可以使用“/* */”来注释一段代码D )每个语句的末尾必须有分号5. 下列关于C 程序的说法错误的是( D )。
A )stdio.h 是输入输出头文件B )一个C 语句必须以分号结束C )VC6.0中可以使用“//”来注释一行D )#define 命令不是预处理命令6.下面四个选项中,均是合法的标识符是( )。
A )abc A_4d _student xyz_abcB )auto 12a a_b ab5.xC )A_4d student xyz_abc ifD )abc a_b union scan7.按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是( C )。
A )大写字母B )数字字符C )-D )下划线8.C 语言提供的合法的数据类型关键字是( B )。
A )DoubleB )shortC )integerD )Char9.下列数据中,不合法的C 语言实型数据是( C )。
A )0.123B )123e3C )2.1e3.5D )789.010. 下列选项中,不能作为C 语言标识符的是( C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计》复习题第三章数据类型及运算1、有如下定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( 1 )。
2、在c语言中,合法的长整型常数是( A )。
A.0LB.4962710C.324562&D.216D3、以下选项中合法的字符常量是(B )。
A.”B”B.‟\010‟C.68D.D4.下面选项中合法的实型常数是(C )。
A.5E2.0B.E-3C.2E0D.1.3E5.请选出可以作为C语言用户标识符的一组标识符号( B )。
A.void define WORDB.a3_b3 _123 IFC.for –abc caseD.2a D0 sizeof6.已知大写字母A的ASCII码是65,小写a的ASCII码是97,则用八进制表示的字符常量‟\101‟是( A )。
A.字符AB.字符aC.字符eD.非法常量7.以下合法的赋值语句是( A )。
A.x=y=100;B.j++;C.x+y;D.c=int(a+b);8.以下程序的输出结果是(-12 )。
main(){int a=3;printf(“%d\n”,(a+=a-=a*a));}9.以下程序输出的结果是(9,10)。
#include<stdio.h>main(){int i=010,j=10;printf(“%d,%d\n”,++i,j--);}10.设有x=11,则表达式(x++*1/3)的值是(3 )。
第四章顺序结构1、若有以下程序:main(){int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}执行后的输出结果是:2、有以下程序:main(){int i=10,j=1;printf(“%d,%d\n”,i--, ++ j);}执行后的输出结果是:3、有以下程序:int c1=1,c2=2,c3;c3=c1/c2;c3中的值是:4、有以下程序:main(){int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);}执行后的输出结果是:5、以下程序的输出结果是:main(){int a=2, b=5;printf(“a=%%d,b=%%d\n”,a,b);}6、以下程序段的输出是:float a=3.1415;printf(“|%6.0f\n|”,a);7、下述程序的输出是()#include<stdio.h>main(){int a=011,b=101;printf(“\n%x,%o”,++a,b++);}8、main(){int a=5;printf(“%d\n”,(a=3*5,a*4,a+5));}9、int x=496;printf(“*%-6d*\n”,x);10、x=5.1694;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);第五章选择结构1、有以下程序main(){int k=-3;if(k<=0)printf(“****\n”);else printf(“&&&&\n”);}该程序运行结果是:****2、有以下程序main(){int a=5,b=4,c=3,d=2;if(a>b>c)printf(“%d\n”,d);else if((c-1>=d)==1)printf(“%d\n”,d+1);else printf(“%d\n”,d+2);}该程序运行结果是:33、有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d\n”,i,j,k);}该程序运行结果是:2,2,24、有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/xelse y=1.0;printf(“%f\n”,y);}该程序输出的结果是:0.5000005、若执行以下程序时从键盘上输入3和4,则输出结果是main(){int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)s=b;s*=s;printf(“%d\n”,s);}166、请写出以下程序的输出结果 1main(){int a=100;if(a>100) printf(“%d\n”,a>100);else printf(“%d\n”,a<=100);}7、以下程序的输出结果是:main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(“%d\n”,x);} -18、有以下程序的执行结果是main(){int k=10;switch(k){case 9:k+=1;case 10:k+=1;case 11:k+=1;default:k+=1; break;}printf(“%d”,k);}9、main(){int x=0,y=0,z=0;if(x=y+z)printf(“***”);elseprintf(“###”);}###10、main(){char x=‟A‟x=(x>=‟A‟&&x<=‟Z‟)?(x+32):x;printf(“%c\n”,x);} a11、以下语句段的输出结果是:*#int x=0;y=2,z=3;switch(x){case 0:switch(y==2){ case 1:printf(“*”);break;case 2:printf(“%”);break;}case 1:switch(z){case 1:printf(“$”);case 2:printf(“*”);break;default:printf(“#”);}}12、若在键盘输入58,则以下程序输出的结果是585858 main(){int a;scanf(“%d”,&a);if(a>50) printf(“%d”,a);if(a>40) printf(“%d”,a);if(a>30) printf(“%d”,a);}13、main(){int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是:a=2,b=1第六章循环控制1、下面程序的运行结果是0#include<stdio.h>main(){int y=10;do{y--;}while(--y);printf(“%d\n”,y--);}2、以下程序段的输出结果是987int n=10;while(n>7){n--;printf(“%d”,n);}3、以下程序的输出结果是不确定main(){ int i,sum;for(i=1;i<6;i++)sum+=sum;printf(“%d\n”sum);}4、以下程序的输出结果是852main(){int y=10;for(;y>0;y--){ if(y%3==0){printf(“%d”,--y);continue;}}}5、以下程序的输出结果是011122main(){int i;for(i=0;i<3;i++)switch(i){case 1:printf(“%d”,i);case 2:printf(“%d”,i);default:printf(“%d”,i);}}6、若x是int类型变量,以下程序的输出结果是**3##4**5 for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);7、以下程序的输出结果是<><>##include<stdio.h>main(){int i;for(i=1;i<5;i++){ if(i%2)putchar(…<‟);elsecontinue;putchar(…>‟);}putchar(…#‟);}8、以下程序段的输出结果是10int k,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf(“%d\n”,s);9、以下程序段的输出结果死循环int k,n,m;n=10;m=1;k=1;while(k<=n)m*=2;printf(“%d\n”,m);10、以下程序的输出结果是-1main(){int x=2;while(x--);printf(“%d\n”,x);}11、阅读下面程序,程序执行后的输出结果为0918273645#include “stdio.h”main(){char a,b;for(a=‟ 0‟,b=‟ 9‟;a<b;a++,b--)printf(“%c%c”,a,b);printf(“\n”);}12、main() *#*#*#${int i;for(i=1;i<=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}13、运行以下程序后,如果从键盘上输入china#,则输出结果为:5,5main(){int v1=0,v2=0; char ch;while((ch=getchar())!=‟#‟)switch(ch){case …a‟:case …h‟:default:v1++;case …o‟:v2++;}printf(“%d,%d”,v1,v2);}14、main() 17{int x=15;while(x>10&&x<50){x++;if(x/3){x++;break;}else continue;}printf (“%d\n”,x);}15、main(){int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));}1-2第七章数组1、以下对数组初始化错误的是 BA)int a[2][3]={1,2,3,4}; B) int [2][]={1,2,3,4,5,6};C) int a[2][3]={{1,2,3},{4,5}} D) int a[][3]={1,2,3,4,5,6};2、若有定义语句:char c[5]={…a‟,‟b‟,‟\0‟,‟c‟,‟\0‟};,则执行语句printf(“%s”,s)的结果是 BA)‘a’‘b’B) ab C)ab c D)ab\0c3、以下程序的输出结果是3,5,7,main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d,”,x[i][2-i]);}4、以下程序的输出结果是main(){ int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[k]);} 不确定5、执行下面的程序段后,变量k中的值为Aint k=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)33 C)30 D)106、若有以下定义:double w[10];则w数组元素下标的上限是(9),下限是(0)。