二级C语言复习题.doc_第1页
二级C语言复习题.doc_第2页
二级C语言复习题.doc_第3页
二级C语言复习题.doc_第4页
二级C语言复习题.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章1. 单项选择题 (1)C 语言是在 语言的基础上产生的。 A. A B. B C. D D. E (2)在 C 语言中,每个语句必须以 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3)标识符和关键字间,要用 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4)用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 (5)下列说法中正确的是( )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6)下列说法中正确的是( )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7)下列说法中错误的是( )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1)C 语言只有 个关键字和 种控制语句。 (2)C 语言是一种“ ”,既具有 的特点又具有 的特点;既适合于开发系统软件又适合于编写应用程序。 (3)每个源程序有且只有一个 函数,系统总是从该函数开始执行C语言程序。 (4)在 C 语言程序中允许出现的字符集是 。 (5) C 语言的程序中有特殊含义的英语单词称为 。 (6) C 语言标识符的长度是前 位有效。(7)C 语言中,标识符的定义规则是 。 (8)C 语言程序的注释可以出现在程序中的任何地方,它总是以 符号作为开始标记,以 符号作为结束标记。3. 简答题(1)C语言程序由哪几部分组成?(2)一个 C 语言应用程序上机过程一般要经过哪几个步骤?简述各步的作用。4. 编程题编写一个 C 语言应用程序,其功能是显示以下信息:* Hello World! *答案一 单项选择题1B 2D 3 C 4B 5B 6A 7D二 填空题1 37,9 2中级语言 高级 低级 3 main 4大小写英文字母(52个) ,数字(10个) , 键盘符号(33个)和 转义字符(11个) 5 关键字6 87 由字母、数字、下划线组成,且不能以数字开头8 /*,*/三 简答题1详见教材中第10页内容2详见教材中第4-5页内容四 编程题main()printf(*n);printf(* Hello World! *n);printf(*n);第二章1. 单项选择题 (1)以下选项中,正确的 C 语言整型常量是 。 A. 32L B. 510000 C. -1.00 D. 567 (2)以下选项中, 是不正确的 C 语言字符型常量。 A. a B. x41 C. 101 D. a (3)在 C 语言中,字符型数据在计算机内存中,以字符的 形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4)字符串的结束标志是 。 A. 0 B. 0 C. 0 D. 0 (5)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6)逻辑运算符中,运算优先级按从高到低依次为 。 A. &,!,| B. |,&,! C. &,|,! D. !,&,| (7)表达式!x|a=b 等效于 。 A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b) (8)设整型变量 m,n,a,b,c,d 均为1,执行 (m=ab)&(n=cd)后, m,n 的值是 。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 (9)int b=0,x=1;执行语句 if(x+) b=x+1; 后,x,b 的值依次为 。 A. 2,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是 。 A. 3 B. 0 C. 9 D. -12 (11)在以下一组运算符中,优先级最低的运算符是 。 A. * B. != C. + D. = (12)设整型变量 i 值为2,表达式(+i)+(+i)+(+i)的结果是 。 A. 6 B. 12 C. 15 D. 表达式出错 (13)若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是 。 A. 1 B. 2 C. 2.0 D. 2.5 (14)sizeof (double)的结果值是 。 A. 8 B. 4 C. 2 D. 出错 (15)设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? b : d的结果为 。 A. 4 B. 3 C. 2 D. 1 (16)设a 为整型变量,不能正确表达数学关系:10a15的 C 语言表达式是 。 A. 10a10 & a15 D. !(a=15) (17)设 f是实型变量,下列表达式中不是逗号表达式的是 。 A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) (18)设ch是 char型变量,其值为 A,则下面表达式的值是 。 ch=(ch=A& ch D. * (22) PC 机中,n在内存占用的字节数是 。 A. 1 B. 2 C. 3 D. 4 (23)字符串ABC在内存占用的字节数是 。 A. 3 B. 4 C. 6 D. 8 (24)要为字符型变量 a赋初值,下列语句中哪一个是正确的 。 A. char a=3; B. char a=3; C. char a=%; D. char a=*; (25)下列不正确的转义字符是 。 A. B. C. 074 D. 0 2. 填空题(1) C 语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示的。 (2)符号常量的定义方法是 。 (3)无符号基本整型的数据类型符为 ,双精度实型数据类型符为 ,字符型数据类型符为 。(4) 设 c=w,a=1,b=2,d=-5, 则表达式 x+1c, y!=c+2, -a-5*b=d+1, a =b=2的值分别为 、 、 、 。 (5) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 。(6) 判断变量 a、b 的值均不为 0 的逻辑表达式为 。 (7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 。 (8) 求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 。(9) 数学式a/(b*c)的 C 语言表达式 。3. 简答题(1)用户标识符在命名时,应注意哪几个方面? (2)设 int i=1,j=2,k=3;,请写出以下表达式的值及计算后变量 i、j、k 的值。 ( +i ) * ( +j ) * ( + k) ( i+ ) * ( +j ) * (k+) i=i+j,j=j+k,k=k+i ! ( i = j ) & ( j = k ) 4. 编程题(1)设长方形的高为 1.5,宽为 2.3,编程求该长方形的面积。(2)编写一个程序,将大写字母 A转换为小写字母 a。答案一选择1D 2D 3C 4C 5B6D 7D 8B 9A 10B11D 12C 13D 14A 15D16A 17D 18B 19A 20B21A 22A 23B 24B 25C二填空11,02#define 符号常量名称 值3unsigned int, double ,char41,0,1,152.56a!=0&b!=074,10,6818,3,39a/b/c 或者 a/(b*c)三简答题1. C语言规定标识符只能由字母数字下划线3种字符组成,且第一个字符不能是数字。区分大小写字母,标识符的长度一般不超过8个字符。尽量做到见名知义,用统一的命名方式。2.(1)24,2,3,4(2)9,2,3,4(3)6,3,5,6(4)0,2,2,3四编程题1main()float x=1.5,y=2.3;printf(“area is %6.2fn”,x*y);2.main()char c=A;printf(“%c”,c+32);第三章1. 选择题(1)printf(f=%3.2f%,3.478);的输出结果是 。A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8% (2)printf(%c,%d,a, a);的输出结果是 。 A. a,97 B. a 97 C. 97,a D. 97 a (3)scanf(%c,&a);若要给变量输入大写字母 A,则以下正确的输入是 。 A. A B. 65 C. A D. 以上都不对 (4)若int k=7,x=12;则能使值为3的表达式是 。A. x%=(k%=5) B. x%=(kk%5)C. x%=kk%5 D. (x%=k)(k%=5)(5)在 TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 中。 A. math.h B. stdio.h C. stbio.h D. stdlib.h (6)复合语句是用 括起来的语句组。 A. ( ) B. C. D. (7)下列格式符中,哪一个可以用于以八进制形式输出整数 。 A. %d B. %8d C. %o D. %ld (8)下列格式符中,哪一个可以用于以十六进制形式输出整数 。 A. %16d B. %8x C. %d16 D. %d (9) 阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为 main()int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A. x+y+z=48 B. x+y+z=35 C.x+y+z=38D.不确定值 (10)要使double x; long a;的数据能正确的输出,输出语句应是 。 A. printf(%d, %f,a, x); B. printf(%d, %1f,a, x);C. scanf(%1d, %1f,&a, &x); D. printf(%1d, %lf,a, x);2. 程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正) (1)以下程序的功能是,从键盘输入一个字符并鸣笛输出。 # include stdio.h mian() char c getchar(c); putchar(“007”) ; /*鸣笛*/ c=putchar(); (2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。 main int a,b,s,l; scanf(%d,%d,&a,&b); s=a*b; l=a+b; printf(l=%f,s=%fn,l); 3. 写出程序运行结果(1) main() int a,b; scanf(%2d%*2s%2d,&a,&b); printf(%dn,a+b); 运行时输入:12345678 (2) main() int a=3,b=5,x,y; x=a+1,b+6; y=(a+1,b+6); printf(x=%dny=%dn,x,y); 4. 编程题 输入 3 个整数,计算它们的和与平均值,平均值的结果保留 2 位小数。 答案1.单项选择题AADDBCCBDD2.改错(1)正确的程序为# include stdio.h main() char c ; c =getchar(); putchar(007) ; /*鸣笛*/ putchar(c); (2) 正确的程序为main() int a,b,s,l; scanf(%d,%d,&a,&b); s=a*b; l=2*(a+b); printf(l=%d,s=%dn, l ,s); 3读程序写出结果(1)68(2)x=4y=114.编程题# include stdio.hmain()int a,b,c,sum;float ave;scanf(“%d%d%d”,&a,&b,&c);sum=a+b+c;ave=sum/3.0;printf(“sum=%d,ave=%.2fn”,sum,ave);第四章1. 单项选择题 (1) 选择结构程序设计的特点是_。A. 自上向下逐个执行 B. 根据判断条件,选择其中一个分支执行 C. 反复执行某些程序代码 D. 以上都是 (2) 假定所有变量均已正确定义,下列程序段运行后x 的值是_。 a=b=c=0,x=35; if(!a) x-; else if(b); if(c) x=3; else x=4; A. 34 B. 4 C. 35 D. 3 (3) 下面的程序片段所表示的数学函数关系是_。 if(x0) y=1; else y=0; (4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值的是( )。 A. if(ab) printf(%dn,a); printf(%dn,b); B. printf(%dn,b); if(ab) printf(%dn,a); C. if(ab) printf(%dn,a); else printf(%dn,b); D. if(a0) y=1;else if(x=0) y=0;else y= -1;printf(%d,y);A.- 1 B. 1 C. 0 D. 2 (6)程序段int x=5,y=8,max; max=(xy)?x:y; printf(%d,max);的输出结果是 。 A. 5 B. 8 C. 3 D. 13 (7)程序段 int x=3,a=1;switch(x) case 4: a+;case 3: a+;case 2: a+;case 1: a+; printf (%d,a);的输出结果是 。 A. 1 B. 2 C. 3 D. 4 (8) 下列语句应将小写字母转换为大写字母,其中正确的是( )。 A.if(ch=a&ch=a&ch=a&cha&chz)?ch-32:ch; (9) 以下程序片段 。 main ( ) int x=0,y=0,z=0;if (x=y+z) printf(“*”);else printf(“#”); A. 有语法错误,不能通过编译 B. 输出:*C. 可以编译,但不能通过连接,所以不能运行 D. 输出:#(10) 在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。A. if (a) S1; else S2; B. if (a=0) S2; else S1;C. if (a!=0) S1; else S2; D. if (a=0) S1; else S2;2. 阅读程序,写出运行结果 (1) void main () int a=10, b=4, c=3; if(ab) a=b ; if(ac) a=c ; printf(%d, %d, %dn, a, b, c) ; (2) void main ( ) int x=100, a=10, b=20, ok1=5, ok2=0 ; if(ab) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; else x= -1; printf(%dn, x); (3) int k,a=1,b=2; k=(a+=b) ? 2:3; printf(%d,k); (4)void main()int s=1,k=0;switch (s)case 1: k+=1;case 2: k+=2;default: k+=3;printf(“%d”,k);(5)void main()int s=1,k=0;switch (s)case 1: k+=1;break;case 2: k+=2;break;default: k+=3;printf(“%d”,k);3. 程序设计题 (1)编一个程序,输入三个单精度数,输出其中最小数。 (2)输入一个实数,输出它的平方根值,如果输入数小于0,输出“输入数据错误”提示。 (3)if语句编程序,输入x 后按下式计算y值并输出。 (4) 编程序,输入一个百分制的成绩t后,按下式输出它的等级,要求分别写作if结构和switch 结构。90100为“A”,8089 为“B”,7079为“C”,6069 为“D”,500 为“E”。 (5)输入 3 个整数,按从大到小的顺序输出。 (6)某商场举行购物优惠活动,(x代表购物款,y代表折扣):x1600 时 y=0%, x2400 时y=5%, x3200 时 y=10%, x=6400时 y=20%,输入一个顾客的购物款后,显示它的应付款数。答案1. BBACABDBDD2.(1) 10, 4, 3;(2) -1(3) 3(4) 6(5) 13.(1)#include “stdio.h”main()float x,y,z,min;scanf(%f%f%f,&x,&y,&z);min=x;if(miny) min=y;if(minz) min=z;printf(min=%fn,min);(2)#include “stdio.h”#include “math.h”main()float x;scanf(“%f”,&x);if(x=0&x=90) ch=A;else if(t=80) ch=B;else if(t=70) ch=C;else if(t=60) ch=D;else ch=E;printf(“Grade=%dn”,ch);Switch结构#include “stdio.h”main()float t;char c;printf(“input score,max as 100:n”);scanf(“%f”,&t);switch(t/10)case 10:case 9: ch=A;break;case 8: ch=B;break;case 7: ch=C;break;case 6: ch=D;break;case 5: ch=E;printf(“Grade=%dn”,ch);(5)#include “stdio.h”main()int a,b,c,t;scanf(“%d%d%d”,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(“%d,%d,%dn”,a,b,c);(6)#include “stdio.h”main()float x,y;printf(“Input Total Price:n”);scanf(“%f”,&x);if(x1600) y=x;else if(x2400) y=x*0.95;else if(x3200) y=x*0.9;else if(x6400) y=x*0.85;else y=x*0.8;printf(“Final Pay=%.2f”,y);第五章1. 单项选择题 (1)for(i=1;i9;i+=1);该循环共执行了 次。 A. 7 B. 8 C. 9 D. 10 (2)int a=2;while(a=0) a-;该循环共执行了 次。 A. 0 B. 1 C. 2 D. 3 (3)执行完循环 for(i=1;i100;i+);后,i 的值为 。 A. 99 B. 100 C. 101 D. 102 (4)以下 for语句中,书写错误的是 。 A. for(i=1;i5;i+); B. i=1;for(;i5;i+); C. for(i=1;i5;) i+; D. for(i=1,i5,i+); (5) 语句,在循环条件初次判断为假,还会执行一次循环体。 A. for B. while C. do-while D. 以上都不是 (6)循环结构的特点是 。 A. 从上至下,逐个执行 B. 根据判断条件,执行其中一个分支 C. 满足条件时反复执行循环体 D. 以上都对(7) i、j已定义为 int 类型,则以下程序段中内循环体的执行次数是 。 for(i=5;i;i-) for(j=0;j4;j+) A. 20 B. 24 C. 25 D. 30 (8) C 语言 while 语句中,用于条件的表达式是 。 A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 (9) int a=1, x=1; 循环语句while(a10) x+; a+; 的循环执行 。 A. 无限次 B. 不确定次 C. 10 次 D. 9 次 (10)下列程序段执行后 s 的值为 。 int i=1, s=0; while(i+) if(!(i%3) break ; else s+=i ; A. 2 B. 3 C. 6 D. 以上均不是2. 填空题 (1)三种循环语句是 价的。 (2)当循环体中的switch语句内有break语句,则只跳出 语句。同样,当for语句中有循环语句,内有 break 语句,则只跳出 语句。 (3)循环体执行遇到continue 语句时 。 (4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1,否则输出 0,请为程序填空。 void main( ) int i, x, y=1; scanf(%d, &x); for(i=2; i=x/2; i+) if ( ) y=0; break; printf(%dn,y); (5)输入 N个实数,输出其中的最大值、最小值。 #include void main( ) float no1,nmax,nmin; scanf(%d,&n); scanf(%f,&no1); nmax=no1; for(i=2;inmax) nmax=no1; printf(MAX=%f MIN=%fn,nmax,nmin); (6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。 #include void main( ) char ch; while( )!=n) if(ch=0&ch=a&ch0; y-) if(y%3=0) printf(%d, -y); continue; (2) main() int k,n,m; n=10;m=1;k=1; while (k+0); (4) #include void main( ) int k=0; char c=A; do switch (c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; k+; while(cG); printf(k=%dn, k); (5)输入数据:2 4 #include void main( ) int s=1,t=1,a,n; scanf(%d%d,&a,&n); for(int i=1;in;i+) t=t*10+1; s=s+t; s*=a; printf(SUM=%dn,s); 4. 程序改错(1) 以下程序是显示200,300所有能被 7 整除的数,每行显示 5 个数,此程序有 5处错。 main() int i,n=0; /*n用来记录每行已打印数的个数*/ while(i300) if(i%7=0) break; printf(%5d,i); n=n+1; if(n=5)/*满5个换行*/ printf(n); n=0; (2) 以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。 main() int i,s,t=0; for(i=1;i=A&ch=Z3. 输出程序结果(1)852 (2) 1024 (3) i=3 i=1 i=-1 (4) k=8(5) SUM=24684. 程序改错(1)main() int i=200,n=0; /*n用来记录每行已打印数的个数*/ while(i=300) if(i%7=0) /break; printf(%5d,i); n=n+1; if(n=5)/*满5个换行*/ printf(n); n=0; i+; (2) main() int i,s=0,t=1; for(i=1;i=7;i+) t=t*i; s=s+t; printf(sum=%dn,s); 5. 程序设计题(1)main()int i,t=1;for(i=1;i=10;i+)t*=i;printf(“%dn”,t);(2)main()int i,s=0,f=1;for(i=2;i80;i+)s+=f*(i-1)/i;f=-f;(3)main()double e=0;int i=1,t=1,n;scanf(“%d”,&n);while(i1e-6)t*=i;e+=1.0/t;i+;printf(“%e”,e);(4)main()int x,g,s,b;for(x=100;x1000;x+)b=x/100;s=x%100/10;g=x%10;if(g*g*g+s*s*s+b*b*b)=x)printf(“%dn”,x);(5)main()int i;double f=81.0,s=81;printf(%8.4f,f);for(i=1;i=20;i+)f=sqrt(f);s+=f;printf(“%8.4f”,f);printf(“ns=%fn”,s);第六章1. 单项选择题 (1)C 语言总是从 函数开始执行。 A. main B. 处于最前的 C.处于最后的 D. 随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。 A. int B. float C. long D. double (3)在 C 语言中,有关函数的说法,以下正确的是 。 A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用 (4)以下函数调用语句中,含有实参的个数为 。 fun(2,3),(4,5+6,7); A. 1 B. 2 C. 5 D. 6(5)函数调用可以在 。 A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是 (6)被调函数返回给主调函数的值称为 。 A. 形参 B. 实参 C. 返回值 D. 参数 (7) 以下正确的函数定义是 。A. double fun(int x, int y) B. double fun(int x,y) z=x+y ; return z ; int z ; return z ;C. fun (x,y) D. double fun (int x, int y) int x, y ; double z ; double z ; z=x+y ; return z ; return z ; (8)被调函数通过 语句,将值返回给主调函数。 A. if B. for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论