收藏 分销(赏)

C语言复习题2.doc

上传人:天**** 文档编号:3059936 上传时间:2024-06-14 格式:DOC 页数:18 大小:128.50KB
下载 相关 举报
C语言复习题2.doc_第1页
第1页 / 共18页
C语言复习题2.doc_第2页
第2页 / 共18页
C语言复习题2.doc_第3页
第3页 / 共18页
C语言复习题2.doc_第4页
第4页 / 共18页
C语言复习题2.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、题型:l 选择题(20题2=40分)l 填空题(15空2=30分)l 编程题:(4题共30分)红色为参考解答一、选择题(1) 以下叙述中正确的是( )CA) C语言程序将从源程序中第一个函数开始执行。 B) 可以由在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行。C) C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束。D) main可以作为用户标识符,用户可以命名任意一个函数作为主函数。(2) 若有定义语句:char s10=”123456700”; 则strlen(s)的值是( ) AA)7B)8C)9D)10(3)若有定义:float x=1.5;int a=

2、1,b=3,c=2;则正确的switch语句是( )BA) 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);(4) 有以下程序 Dvoid main( )inta=0,2,4,6,8,*p=a,*q=p+3;print

3、f(%dn,*p+*q); 程序运行后的输出结果是( )A) 10 B) 4 C) 8 D) 6(5) 若有定义:int x=0, *p=&x;,则语句printf(%dn,*p);的输出结果是( )B A)随机值 B)0 C)x的地址 D)p的地址(6) 下列叙述中错误的是( )AA) 一个C语言程序可以包含多个main函数B) C程序可以由多个程序文件组成C) C程序可以由一个或多个函数组成D) 在C程序的函数中不能定义另一个函数A) and_2007 B) abc C)int D) Double(7)设有int x=11; 则表达式 x % 5的值是( ) A A) 1 B) 2 C)

4、3 D) 4(8) 以下的for循环( )C for(x=0; x10; x + =2 );A) 是无限循环 B)循环次数不定 C)执行5次 D)执行4次(9) 以下错误的定义语句是( )CA)int x3=0,1,1,2,3;B)int x43=1,2,3,1,2,3,1,2,3;C)int x4=1,2,3,1,2,3,1,2,3,1,2,3;D)int x3=1,2,3,4;(10) C语言中while和do-while循环的主要区别是( ).AA)do-while的循环体至少无条件执行一次B)while的循环控制条件比的循环控制条件严格C)do-while允许从外部转到循环体内D)do

5、-while的循环体不能是复合语句(11)对于基类型相同的两个指针变量之间,不能进行的运算是 ( ) AA) B) = C) + D) -(12) 设有定义:intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )AA)*p=*q; B)p=q; C)*p=&n1; D)p=*q; (13) 以下叙述错误的是( )DA) 用户定义的函数中可以没有return语句B) 用户定义的函数中可以有多个return语句,一次调用可以返回多个值C) 用户定义的函数中若没有return语句,则应当定义函数的类型为void类型 D) 函数的return语句中可以没有表

6、达式(14) 有以下程序C#include int fun(int x,int y) if(xy) return x; else return y;void main( )inta=4,b=5;printf(%dn,fun(a,b); 程序运行后的输出结果是( )A) 3 B) 4 C) 5 D) 6(15) 以下叙述中错误的是( )DA)在程序中凡是以”#”开始的代码行都是预处理指令行B)预处理指令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义指令行D)C程序对预处理指令行的处理是在程序执行的过程中进行的(16) 按照C语言的用户标识符命名规则,不能出现在标识符中的是( )

7、DA) 字母 B) 数字 C) 下划线 D) 连接符(17) 若有定义语句int a32;按在内存中的存放顺序,a数组的第3个元素(a00是第一个元素)是( )AA) a10 B) a11 C) a00 D) a01(18) 以下不合法的标识符是( )AA) for B) a_b C) print D) x1(19) 若函数中有定义语句:int k;,则( )BA)系统将自动给k赋初值0B)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(20) 以下叙述中正确的是( )DA) 函数的定义可以嵌套,但函数的调用不可以嵌套。 B) 函数的定义不可以嵌套,但函数的调用可以嵌套。C

8、) 函数的定义和调用都不可以嵌套。D) 函数的定义和调用都可以嵌套。(21) 下面关于标识符的叙述不正确的是( )BA)标识符中可以有数字 B)关键字可以做标识符 C)标识符中可以有大写字母 D)标识符中可以有下划线(22) 以下关于字符串的叙述中正确的是( )BA) C语言中有字符串常量和变量 B) C语言中没有字符串变量 C) 可以用关系运算符对字符串大小进行比较D) 所有字符串末尾都有结束标志(23) 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )DA)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占

9、同一存储单元 D)函数的形参和实参分别占用不同的存储单元(24) 以下不合法的标识符是( )CA)j2_key B) Int C)4d D)_8_(25)设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( ) DA) 3 B) 0 C) 9 D) 12 (26) 在C程序中,若对函数类型未加说明,则函数的隐含类型为( )。AA)int B)double C)void D)char(27) 设变量定义为int a, b;,执行下列语句时,输入( ),则a和b的值都是10。Dscanf(a=%d, b=%d,&a, &b);A)10 10 B)10, 10 C)a=10 b

10、=10 D) a=10, b=10 (28) 设变量定义为int a4;,则表达式( )不符合C语言语法。DA) *a B) a0 C) a D) a+(29) 下列程序输出结果是( ) C #include void main( )int k=5; k-;printf(%d,+k);A) 3 B) 4 C) 5 D) 6(30) 有以下程序A#include void main( )int x,y,z; x=y=1;z=x+,y+;printf(%d,%d,x,y);程序运行后的输出结果是( )A) 2,2 B) 2,3 C) 3,2 D) 1,2(31) 以下能正确定义字符串的语句是( )

11、DA) char str=”kx43”; B) char str=”; C) char str=064; D) char str=”0”;(32) 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能 将变量c中的大写字母转换为小写字母的语句是( )D A)c=(c-A)%26+a; B)c=c+32; C)c=c-A+a; D)c=(A+c)%26-a;(33) 下列程序段的输出结果是( )C#include void main( )int t=1,i=5;for(;i=0;i-)t*=i;printf(%dn,t);A)5 B)120 C)0 D)1(34). 执行

12、以下程序后,j的值是多少( )A#include main()int i,j=0;for(i=0;i3;i+) if(i%2= =0) continue; j+;printf(%dn,j); A)1 B)2 C)3 D)4(35) 在C语言中,函数返回值的类型最终取决于 ( )A A) 函数定义时在函数首部所说明的函数类型B) return语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型 D) 形式参数的类型(36) 设有以下语句Ctypedef struct TTchar c;int a4;CIN;则下列叙述正确的是( )A)可以用TT定义结构体变量 B)TT是struct类型的

13、变量C)可以用CIN定义结构体变量 D)CIN是struct TT类型的变量(37) 下列程序输出结果是( ) C #include void main( )int k=5; printf(%d,k+);A) 3 B) 4 C) 5 D) 6(38) 若变量已正确定义,语句if(ab) k=0; else k=1; 和( )等价。CA) k=(ab)?1:0; B) k=ab;C) k=a=b; D) a=b ? 0 : 1;(39). 执行以下程序后,j的值是多少( )A#include main()int i,j=0;for(i=0;i3;i+) if(i%2=0) continue; j

14、+;printf(%dn,j); A)1 B)2 C)3 D)4(40)有以下程序 B void fun(int *a, int *b) a=b; (*a)+; main () int a=3, b=4, *p1, *p2; p1=&a; p2=&b; fun(p1,p2); printf(“%d%dn”,a,b); 程序运行后的输出结果是( ) A) 3 4 B) 3 5 C) 4 4 D) 4 5(41) 表达式3.6-52+1.2+52的值是( )D A)4.3 B)4.8 C)3.3 D)3.8(42) 下列程序输出结果是( )A#include void main( )int k=5

15、;while(-k)printf(%d,k-=3);printf(n);A)1 B)521 C)52-1 D)41(43) C语言源程序名的后缀是( )BA) .exe B) .c C) .obj D) .cpp(44) 按照C语言的用户标识符命名规则,不能出现在标识符中的是( )DA) 字母 B) 数字 C) 下划线 D) 连接符(45) 有以下程序C#include void main( )int i, s=0, t =1,2,3,4,5,6,7,8,9;for(i=0; i9; i+=2) s+=*(t+i);printf(%dn, s);程序执行后的输出结果是( )A)45 B)20

16、C)25 D)36(46) 设有int x=21; 则表达式 x % 5的值是( ) A A) 1 B) 2 C) 3 D) 4(47)设有int x=11; 则表达式5/2+ x % 3的值是( ) C A) 2 B) 3 C) 4 D) 0(48) 有以下程序 C #include int fun(int x,int y) if(xy) return x; else return y;void main( )inta=4,b=5;printf(%dn,fun(a,b); 程序运行后的输出结果是( )A) 3 B) 4 C) 5 D) 6(49) 下列程序输出结果是( ) C#include

17、 void main( )int k=5; k+;printf(%d,k+);A) 3 B) 4 C) 5 D) 6(50) 若有定义语句int a34;按在内存中的存放顺序,a数组的第8个元素(a00是第一个元素)是( )AA) a13 B) a14 C) a03 D) a04(51) 若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”, &a,&b,&c); 给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是( )BA)1,2,3 B)123C)1,2,3 D)1,2,3(52) 以下关于函数的叙述中正确的是( )CA)每个函数都可以被其它函数调用(包括main

18、函数)B)每个函数都可以单独运行C)每个函数都可以被单独编译D)在一个函数内部可以定义另一个函数(53) 若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )DA)#define N 10 B)#define n 5 int aN; int a2*n;C)int a5+5; D)int n=10,an; (54) 下列程序段的输出结果是 ( ) Avoid fun(int *x, int *y) printf(“%d %d”, *x, *y); *x=3; *y=4;main() int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);

19、A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2(55) 以下叙述中正确的是( )CA) C语言程序将从源程序中第一个函数开始执行。 B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行。C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束。D) main可以作为用户标识符,用户可以命名任意一个函数作为主函数。(56)有以下程序 A#include void main( )char *p10=abc,aabdfg,dcdbe,abbd,cd;printf(%dn,strlen(p4);执行后输出结果是( )A)2 B)3

20、 C)4 D)5(57) C语言源程序名的后缀是( ) BA) .exe B) .c C) .obj D) .cpp(58) 有以下程序段 Cint k=0;while(k=1)k+;while 循环执行的次数是 ( )A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执行1次(59) 当调用函数时,实参是一个数组名,则向函数传送的是 ( ) BA) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值(60) 下列程序输出结果是( )D#include void main( )int k=5; k+;printf(%d,k+);A) 3 B) 4

21、 C) 5 D) 6(61) 有以下程序 B#includeint f(int x,int y)return(y-x)*x);void main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%dn”,d);程序运行后的输出结果是( )A)10 B)9 C)8 D)7(62) 下面关于标识符的叙述不正确的是( )BA)标识符中可以有数字 B)关键字可以做标识符 C)标识符中可以有大写字母 D)标识符中可以有下划线(63) 有以下程序 D#include void main( )int a=1,b=0; printf(%d,b=a+b);printf(

22、%d,a=2*b);程序运行后的输出结果是( )A) 0,0 B) 1,0 C) 3,2 D) 1,2(64)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句 if (ab) if(c= =d) y=0; else y=1; 该语句所表示的含义是( ) CA) B) C) D) (65)若有定义语句:int m =5,4,3,2,1,i=4;则下面对m数组元素的引用中错误的是( ) CA)miB)m2*2C)mm0D)mmi(66) 有以下程序 B#include int fun(int x,int y) if(x=y) return(x);else return (x+y)/2)

23、;void main() int a=4,b=5,c=6;printf(“%dn”,fun(2*a,fun(b,c);程序运行后的输出结果是A)3 B)6 C)8 D)12填空题(1) 结构化程序设计中的三种基本结构是顺序结构、选择结构和()。循环结构(2)当定义一个无返回值函数时,则函数的返回值类型是()。int(3) 在C语言中整数可用()进制数、十进制数、十六进制数三种数制表示。八(4)若有char a3=ab;则*a=(),*(a+2)=()。a 0(5)设y是int型变量,请写出判断y为偶数的关系表达式()y%2= =0(6)已知a=3,b=2,则表达式a*=b+8的值是()。30(

24、7) C语言中的实型变量分为两种类型,分别是()和双精度。单精度(8)在C程序中,可用()语句结束本次循环,跳过循环体重下面尚未执行的语句,提早进入下一次的循环。 continue(9) 当a=5,b=4,c=2时,表达式ab!=c的值是()。1 (10) 设有定义语句:int a34=1,2,0,4,6,8,9,则数组元素a21的值是 ()。6(11) C程序是由函数构成的,一个C源程序至少包含一个()函数。main(12)设有说明语句int a34,则数组a中包括了()个数据元素12(13)a数组定义如下:char a3;则a数组中可用最小下标是(),最大下标是()。0 2(14) 表达式

25、 strlen(”hello”) 的值是()。5(15) 在循环语句中,break语句的作用是()。 退出循环(16) C语言源程序的基本单位是()。函数 (17) 表示“xyz”的C表达式是()。x=y & y=z(18) 在C语言中,表示逻辑“真”值用()。 1 (19) 若有int a32 = 1,3,2,4,5;,则a11的值是 (),a20的值是 () 2 4(20) )以下程序运行后的输出结果是()。 3 4 #include void main() int i,j; for(i=6;i3;i-)j=i; printf(”ddn”,i,j); (21) 有以下程序 6#includ

26、e #define f(x) x*xmain() int a=2,s; s=f(a+1); printf(“%dn,s);程序运行后的输出结果是()。 (22) 下面程序的功能是计算s的值:s=1!+2!+3!+n!,其中n由键盘敲入,n30,请填空补充完整。#include void main( )long s, t;int i, n;printf(input n(n30):);scanf(%d, &n);();s=0;();t=1;for(i=1; i=n; i+) ();t=t*i;s+=t;printf(1!+2!+3!+%d!=%ldn, n, s);(23) 以下程序的运行结果是(

27、)7 8 9int f(int a) int b=0;static int c=3;b=b+1;c=c+1;return(a+b+c);void main( ) int a=2,i;for(i=0;i3;i+)printf(“%d ”,f(a);(24)求e的近似值,直到某一项的值小于或等于10-7为止。将下列程序补充完整。#include void main( )int n;double t,sum,m;n=1;(); sum=1;m=1;do (); t=1/m;sum+=t;n+;( ); m=m*n; while(t1e-7);printf(e=%fn,sum);(25) 有以下程序

28、#includeint f(int x,int y)return(y-x)*x);void main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%dn”,d);程序运行后的输出结果是( )9(26)以下程序的输出结果是( )#include void main()int a33=1,2,9,3,4,8,5,6,7,i,s=0;for ( i=0; i3; i+) s+=aii+ai3-i-1;printf(%dn,s);30(27)以下程序运行后的输出结果是( )。void main( ) int x=10,y=20,t; t=x;x=y;y=t

29、; printf(“%d,%d n”,x,y);20 10(28)执行以下程序后,输出#号的个数是( )。#include void main( ) int i; for(i=1; i5; i+) putchar(#);(29)执行语句 for(m=1; m=5; ) m+; 后,变量m的值是( )6(30) 已知字母A的ASCII码为65。以下程序运行后的输出结果是( )#include void main( )chara,b;a=A+5-3; b=a+6-2; printf(%d%cn,a,b); 67 G(31) 以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数

30、计算:y1=(x+8)2-2(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空。#includemath,hdouble fun(double x)return(x*x-2*x+6);void main()double x,y1,y2;printf(Enter x:); scanf(%lf,&x);y1=fun( );xy2=fun( );sin(x)printf(y1=%lf,y2=%lfn,y1,y2); (32) 以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include long ; /*函数说明语句*/ fun

31、c( );void main( )longn;n=func();printf(“n=%ldn”,n);longfunc( )longm;for(m=0;getchar()!=; m+ ); m+;return m;(33)以下程序运行后的输出结果是( )。void main( ) int x=10,y=20,t; t=x;x=y;y=t; printf(“%d,%d n”,x,y); 20 10(34)执行以下程序后,输出*号的个数是( )。5#include void main( ) int i; for(i=0; i10; i+=2) putchar(*);(35)执行语句 for(m=1

32、; m=5; m+) ; 后,变量m的值是( )。6(36) 以下程序运行后的输出结果是( )。#include void main( )intx=0210;printf(%Xn,x);88(37) 若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:a=7b=9请完成输出语句:printf(“ ”,a,b);a=%dnb=%dn(38) 已知a=6,则赋值表达式a+=a-=a*=a的值是( ) 0(39) 以下程序的输出结果是( )。1 3#include voidfun(int x)if(x/20)fun(x/2);printf(“%d”,x);void main( )fun

33、(3);printf(“n”);(40)有以下程序int fun(int n)if(n= =1) return 1;else return ( n+fun(n-1 ) );void main( )int x;scanf (d,&x);x=fun (x);printf (dn,x);执行程序时,给变量x输入10,程序的输出结果是( )55(41)下面rotate函数的功能是:将n行n列的矩阵A转置为A, 请填空。例如:当A ,则A= #include #define N 4void rotate(int aN)int i,j,t;for(i=0;iN;i+)for(j=0; ();j+) jit

34、=aij;();aij=ajiaji=t;编程题:(1) 有一函数: 编写一程序,输入一个x值,输出y值。P58例4-1#include void main()int x,y;printf(Please input the value of x:);scanf(%d,&x);if (x0) y=1;printf(The value of y is %dn,y);(2) 输入一个字符,判断它是否是小写字母。如果是,将它转化成大写字母;如果不是,不转换。P86 习题第4章三、1(类似)方法一:#include void main()char ch;scanf(%c,&ch);ch=(ch=a &

35、ch=z)?(ch-32):ch;printf(%cn,ch);方法二:#include void main()char ch;scanf(%c,&ch);if(ch=a & ch=z) ch=ch-32;printf(%cn,ch);(3) 用for循环写出求整数1100(包含100)中所有奇数的和的程序。P76例4-13 (类似)#include void main()int i,sum=0;i=1;for(i=1;i=100;i+,i+)sum=sum+i;printf(sum=%dn,sum);(4) 编写程序求出所有满足以下条件的三位整数:其各位数字的立方和等于该数本身。例如:153

36、。P81例4-19 #include void main()int i,a,b,c;printf(100-000之间的水仙花数有:n);for(i=100;i1000;i+)a=i/100;b=i/10%10;c=i%10;if (a*a*a+b*b*b+c*c*c=i) printf(%dn,i);(5) 有三个整数a、b、c,由键盘输入,输出其中最大的数。P59例4-2 (类似)#include void main()int a,b,c,max;printf(Please input the data of a、b 、cn);scanf(%d,%d,%d,&a,&b,&c);if(ab) if (ac) max=

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服