1、习题1一、选择题1.所有C函数的结构都包括的三部分是( )。A语句、花括号和函数体B函数名、语句和函数体C函数名、形式参数和函数体D形式参数、语句和函数体 2C程序由( )组成。A子程序 B主程序和子程序 C函数 D过程3.下面属于C语言标识符的是( )。A2ab Bf C?b D_a124.C语言中主函数的个数是( )。A2个 B1个 C任意个 D10个5.下列关于C语言注释的叙述中错误的是( )。A以“/*”开头并以“*/”结尾的字符串为C语言的注释内容B注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义 C程序编译时,不对注释作任何处理 D程序编译时,需要对注释进行处理 6.下
2、列不是C语言的分隔符的是( )。A逗号 B空格 C制表符 D双引号7.下列关于C语言的关键字的叙述中错误的是( )。A关键字是C语言规定的具有特定意义的字符串,通常也称保留字B用户定义的标识符不应与关键字相同 CANSI C标准规定的关键字有64个 DANSI C标准规定的关键字有32个8.在Visual C+ 6.0环境下,C源程序文件名的默认后缀是( )。A.cpp B.exe C.obj D.dsp9.若在当前目录下新建一个名为“LX”的工程,则在当前目录下生成的工作区文件名为( )。ALX.DSW BLX.OPT C LX.DSP DLX.C10.面可能不影响程序正常运行的是( )。A
3、语法错误 B逻辑错误 C警告提示 D算法错误二、填空题1.C程序是由 构成的,一个C程序中至少包含 。因此, 是C程序的基本单位。2.C程序注释是由 和 所界定的文字信息组成的。3.开发一个C程序要经过编辑、编译、 和运行4个步骤。4.在C语言中,包含头文件的预处理命令以 开头。5.在C语言中,主函数名是 。6.在C语言中,行注释符是 。7.在C语言中,头文件的扩展名是 。8.在Visual C+ 6.0 IDE中,按下Ctrl键的同时按 键,可以运行可执行程序文件。9.在Visual C 6.0环境中用RUN命令运行一个C程序时,这时所运行的程序的后缀是 。10.C语言源程序文件的扩展名是
4、;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的扩展名是 。三、程序设计题1.编写程序输出以下图案 * * S * *2.试编写一个C程序,输出如下信息。*You are welcome!-3.编写程序,分别用scanf函数和getchar函数读入两个字符送给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行此程序,比较用putchar函数和printf函数输出字符的特点。习题21. 简述算法的概念。2. 算法应具备哪些特性?3. 分别说明什么是自然语言描述法,什么是框图语言描述法,什么是伪语言描述法,什么是N-S流程图语言描述法,它们的优缺点各是什
5、么?4. 在结构化程序设计方法中,有哪几种基本结构?5. 请用程序流程图语言和N-S流程图语言分别写出打印乘法九九口诀表的算法。6. 仿照例2-3的程序,依照流程图,编写例2-1的程序。7. 仿照例2-3的程序,依照流程图,编写例2-2的程序。8. 仿照例2-3的程序,依照流程图,编写例2-4的程序。9. 仿照例2-3的程序,依照流程图,编写例2-5的程序。习题3一、 选择题1关于C语言数据类型的叙述,正确的是( )。 A. 枚举类型不是基本类型 B. 数组不是构造类型 C. 变量必须先定义后使用 D. 不允许使用空类型 2对于C语言源程序,以下叙述错误的是( )。 A. 可以有空语句 B.
6、函数之间是平等的,在一个函数内部不能定义其他函数 C. 程序调试时如果没有提示错误,就能得到正确结果 D. 注释可以出现在语句的前面 3下面关于C语言用户标识符的描述,正确的是( )。 A. 不区分大小写 B. 用户标识符不能描述常量 C. 类型名也是用户标识符 D. 用户标识符可以作为变量名 4 以下( )是正确的变量名。 A. 5f B. if C. f.5 D. _f5 5以下( )是正确的常量。 A. E-5 B. 1E5.1 C. a12 D. 32766L 6以下( )是正确的变量名。 A. a.bee B. -p11 C. int D. p_11 7以下( )是正确的字符常量。
7、A. c B. C. W D. 32a 8以下( )是不正确的字符串常量。 A. abc B. 1212 C. 0 D. 9以下( )是错误的整型常量。 A. -0xcdf B. 018 C. 0xe D. 011 10以下( )是正确的浮点数。 A. e3 B. .62 C. 2e4.5 D. 123 11若有说明语句:char c=95; 则变量c包含( )个字符。 A. 1 B. 2 C. 3 D. 语法错误 12若有定义:int a=2; 则正确的赋值表达式是( )。 A. a-=(a*3) B. double(-a) C. a*3 D. a*4=3 13语句x=(a=3,b=+a);
8、运行后,x、a、b的值依次为( )。 A. 3,3,4 B. 4,4,3 C. 4,4,4 D. 3,4,3 14语句a=(3/4)+3%2;运行后,a的值为( )。 A. 0 B. 1 C. 2 D. 3 15char型变量存放的是( )。 A. ASCII代码值 B. 字符本身 C. 十进制代码值 D. 十六进制代码值 16若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。 A. 3,3 B. 4,4 C. 4,3 D. 3,4 17若有定义:int a; 则语句a=(3*4)+ 2%3;运行后,a的值为( )。 A. 12 B. 14 C. 11 D
9、. 17 18若有定义:int a,b; double x;则以下不符合C语言语法的表达式是( )。 A. x%(-3) B. a+=-2 C. a=b=2 D. x=a+b 19若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( )。 A. x=x*3=2 B. x=(y=1) C. i=float(x) D. i%(-3) 20设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是( )。 A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*3 二、填空题1设a为sho
10、rt型变量,描述“a是奇数”的表达式是 。2若有定义:int a=5,b=2,c=1;则表达式a-bb)&(y=cd) 的值为 。6若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是 。7 若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是 。三、程序设计题1已知圆的半径r=2.5,圆柱高h=1.8,求圆周长,圆柱体积。2要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母“A”后面第4个字母
11、是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编写1程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为G、l、m、r、e并输出。(1)输入事先已编好的程序,并运行该程序,分析是否符合要求。(2)改变c1、c2、c3、c4、c5、的初值为:T、o、d、a、y,对译码规律作如下补充:W用A 代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行。(3)将译码规律修改为:将字母用它前面的第4个字母代替,例如:E用A 代替,Z用V代替,D用Z代替,C用Y代替,B用X代替,A用W代替。修
12、改程序并运行。3输入秒数,将它按小时、分钟、秒的形式来输出。例如输入24680 秒,则输出6小时51分20秒。习题 4一、选择题1有如下程序main( ) int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+; printf(%dn,c);该程序的输出结果是( )A) 0 B) 1 C) 2 D) 32对do.while语句错误的描述是:( )A)可构成多重循环结构B)循环次数不可能为0C)循环次数可能为0 D)先执行后判断3任何复杂的程序,都是由( )构成的。A)分支结构、顺序结构、过程结构B)循环结构、分支结构、过程结构C)顺序结构、循环结构、分支结构D
13、)循环结构、分支结构4设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句( )。if (x=y) printf( x is equal to y.); A)语法错B)不能判断x和y是否相等C)编译出错D)能判断x和y是否相等5C语言中规定,if语句的嵌套结构中,else总是( )配对。A)与最近的ifB)与第一个if C)与按缩进位置相同的ifD)与最近的且尚未配对的if 6以下有关switch语句的说法正确的是( )。A)break语句是语句中必需的一部分B)在switch 语句中可以根据需要使用或不使用break语句C)break语句在switch 语句中不可以使用D)在
14、switch 语句中的每一个case都要使用break语句7当执行以下程序时,( )。#includevoid main() int a; while(a=5) printf(%d ,a-); A)循环体将执行5次B)循环体将执行0次C)循环体将执行无限次D)系统会死机8以下if语句错误的是( )。A)if (xy) x+; y+; else x-; y-;B)if (x) x+y; C)if (xy); D)if (x!=y) scanf ( %d,&x) ; else x+;9以下说法错误的是( )。A)do.while语句与while语句的区别仅是关键词“while”出现的位置不同B)w
15、hile语句是先进行循环条件判断,后执行循环体C)do.while是先执行循环体,后进行循环条件判断D)while、do.while和for语句的循环体都可以是空语句二、填空题 1有程序段: int i=0,a=1;while(i9) i+; +a;其中,循环条件是_,循环控制变量是_,循环体是_,修改循环条件的语句是_,该循环条件将执行_次,结束循环时,i的值是_,a的值是_。2有程序段:int i=0,a=1;for(i=1;i10;i+) a+;其中,循环条件是_,循环控制变量是_,循环体是_,修改循环条件的语句是_,该循环条件将执行_次,结束循环时,i的值是_,a的值是_。3以下程序的
16、输出结果是_.#include main() int n=12345,d;while(n!=0) d=n%10; printf(%d,d); n/=10;4以下程序判断输入的整数能否被3或7整除,请填空。main() int x,f=0; scanf( “%d”,&x ); if ( 1 ) ( 2) if(f=1) printf(“YESn”); else printf(“NOn”); 三、程序阅读题1阅读以下程序,若输入60,写出程序运行结果。#includevoid main() int x; scanf(%d ,&x); if (x=60) printf(pass); else pri
17、ntf(fail);2阅读以下程序,若输入5,写出程序运行结果。#include int main( ) int i, n; double fact; scanf(%d, &n); fact=1; for(i=1;i=n;i+) fact*=i; printf(%.0fn, fact);四、程序设计题1 输入一个整数,输出它的绝对值 。2 编写程序,统计从键盘输入的一行字符的个数。3 编写程序,用穷举法输出100以内的素数。4求1!2!+3!4! +49!50!的和。5 输入10个字符,分别统计出其中空格或回车键、数字和其他字符的个数。习题5一、选择题1执行下面的程序段后,变量k中的值为( )
18、。int k=3, s2; s0=k; k=s1*10;A. 不定值 B. 33 C. 30 D. 102执行下列程序时输入:123456789,输出结果是( )。void main() char s100; int c, i; scanf(%c,&C); scanf(%d,&i); scanf(%s,s); printf(%c,%d,%s n,c,i,s); A. 123,456,789 B. 1,456,789 C. 1,23,456,789 D. 1,23,4563有如下程序:void main()int n5=0,0,0,i,k=2;for(i=0;ik;i+) ni=ni+1;pri
19、ntf(%dn,nk);该程序的输出结果是( )。A. 不确定的值 B. 2 C. 1 D. 04有如下程序void main()int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;ji;j+) s+=aij;printf(%dn,s);该程序的输出结果是( )。A. 14 B. 15 C. 16 D. 175以下程序的输出结果是( )。void main() int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,xi2-i);A. 1,5,9 B. 1,4,7 C. 3,5,7 D.
20、3,6,96以下程序的输出结果是( )。main() char w10= ABCD,EFGH,IJKL,MNOP,k; for(k=1;k3;k+) printf(%sn,wk); A. ABCD B. ABCD C. EFG D.EFGH FGH EFG JK IJKL KL IJ O M7下面语句中不正确的是( )。A. static int a5 = 1 , 2 , 3 , 4 , 5 ; B. static int a5 = 1 , 2 , 3 ;C. static int a = 0 , 0 , 0 , 0 , 0 ; D. static int a5 = 0*5;8若有说明:int
21、 a 4 = 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 则数组第一维的大小为( )。A.2 B.3 C.4 D.不确定的值9若定义static int a22 = 1,2,3,4;则a数组的各数组元素分别为( )。A. a00 = 1 , a01 = 2 , a10 = 3 , a11 = 4B. a00 = 1 , a01 = 3 , a10 = 2 , a11 = 4C. a00 = 4 , a01 = 3 , a10 = 2 , a11 = 1D. a00 = 4 , a01 = 2 , a10 = 3 , a11 = 110下列语句中,不正确的是( )。A
22、. static int a23 = 1 , 2 , 3 , 4 , 5 , 6;B. static int a23 = 1, 4 , 5;C. static int a 3 = 1, 4;D. static int a = 1 , 2 , 3 , 4 , 5 , 6;二、填空题1. 设有数组定义为: char array =China; 则数组 array所占的空间为 。2. main() char arr24; strcpy(arr,you); strcpy(arr1,me); arr03=&; printf(%sn,arr); 程序执行后的输出结果是 。3. main() int i,k
23、,a10,p3:k=5;for (i=0;i10;i+) ai=i;for (i=0;i3;i+) pi=ai*(i+1);for (i=0;i=0 & chiy)?x:y; return(z);4以下程序的运行结果是_。#include stdio.hvoid main() void add(int x,int y, int z); int x=2,y=3,z=0; printf(1)x=%d y=%d z=%dn,x,y,z); add(x,y,z); printf(3)x=%d y=%d z=%dn,x,y,z);void add(int x,int y, int z)z=x+y; x=
24、x*x; y=y*y; printf(2)x=%d y=%d z=%dn,x,y,z);三、程序设计题1.编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。要求:(1) 编写一个函数prime(n),返回给定整数n是否为素数。(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。2.函数fun的功能是:统计各年龄段的人数并存到b数组中,n个人员的年龄放在a数组中。年龄为1到9的人数存到b0中,年龄为10到19的人数存到b1,年龄为20到29的人数存到b2, 年龄为30到39的人数存到b3,年龄为40到49的人数存到b4, 年
25、龄为50岁以上的人数存到b5中。例如,当a数组中的数据为:9、18、27、38、59、33、14、75、38。调用该函数后,b数组中存放的数据应是:1、2、1、3、0、2。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include stdio.hvoid fun(int a, int b, int n)void main() int i,a100=9,18,27,38,59,33,14,75,38,b6=0;fun(a,b,9);printf(The result is: );for (i=0; i6;i+) printf(%d ,bi);pr
26、intf(n);习题7一、 单项选择题1.设有定义:int n1=0,n2,*p=&n2,*q=&n1; 以下赋值语句中与n2=n1;语句等价的是( ) 。A.*p=*q; B.p=q; C.*p=&n1; D.p=*q; 2.若有定义:int x=0, *p=&x;,则语句printf(%dn,*p);的输出结果是( )。 A.随机值 B.0 C.x的地址 D.p的地址3. 以下定义语句中正确的是( )。A. char a=Ab=B; B. float a=b=10.0;C. int a=10,*b=&a; D. float *a,b=&a; 4. 有以下程序 main() int a=7,
27、b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q; q=r; printf(%d,%d,%d,%dn,*p,*q,a,b); 程序运行后的输出结果是( )。 A. 8,7,8,7 B. 7,8,7,8 C. 8,7,7,8 D. 7,8,8,7 5. 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是( )。 A. scanf(“%d”, pA) ; B. scanf(“%d”, A) ; C. scanf(“%d”,& pA) ; D. scanf(“%d”,* pA) ;6. 设有定义:int n=0,*p=&n,*q=&p;则以下选项中,
28、正确的赋值语句是( )。 A.p=1; B.*q=2; C.q=p; D.*p=5;7. 有以下程序 void fun(char *a, char *b) a=b; (*A)+; main () char c1=A, c2=a, *p1, *p2; p1=&c1; p2=&c2; fun(p1,p2); printf(“%c%cn”,c1,c2); 程序运行后的输出结果是( )。 A. Ab B. aa C. Aa D. Bb8. 若程序中已包含头文件stdio.h, 以下选项中,正确运用指针变量的程序段是( )。 A. float *i=NULL; B. float a,*f=&a; sca
29、nf(&d,f); *f=10.5; C. char t=m, *c=&t; D. long *L; *c=&t; L=0;9. 有以下程序 #inc1ude main() printf(%dn, NULL); 程序运行后的输出结果是( )。 A. 0 B. 1 C. -1 D. NULL没定义,出错10. 已定义以下函数: fun (int *p) return *p; 该函数的返回值是( )。 A. 不确定的值 B. 形参p中存放的值 C. 形参p所指存储单元中的值 D. 形参p的地址值11. 下列函数定义中,会出现编译错误的是( )。 A.void max(int x, int y,int *z) B. int max(int x,y) *z=xy ? x:y; int z ; z=xy ? x:y; return z ; C. max (int x,int y) D. int max(int x,int y) int z; return(xy?x:y) ; z=xy?x:y; return(z);