C语言复习题2_第1页
C语言复习题2_第2页
C语言复习题2_第3页
C语言复习题2_第4页
C语言复习题2_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

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

2、x=1.5;int a=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:p

3、rintf("*n"); case c:printf("*n");(4) 有以下程序 Dvoid main( )int a=0,2,4,6,8, *p=a, *q=p+3;printf("%dn", *p + *q); 程序运行后的输出结果是( ) A) 10  B) 4  C) 8  D) 6(5) 若有定义:int x=0, *p=&x;,则语句printf("%dn",*p);的输出结果是( )B A)

4、随机值 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) 3 D) 4(8) 以下的for循环( )C for(x=0; x<10; x + =2 );A) 是无限循环 B)循环次数不定 C)执行5次 D)执行4次(9) 以下错误的定义语句是( )CA)int

5、 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-while的循环体不能是复合语句(11)对于基类型相同的两个指针变量之间,不能进行的运算是 ( ) AA) < B) = C) + D) -(12) 设有定义:int n1=0,n2

6、,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )A A)*p=*q;  B)p=q;  C)*p=&n1;  D)p=*q; (13) 以下叙述错误的是( )DA) 用户定义的函数中可以没有return语句B) 用户定义的函数中可以有多个return语句,一次调用可以返回多个值C) 用户定义的函数中若没有return语句,则应当定义函数的类型为void类型 D) 函数的return语句中可以没有表达式(14) 有以下程序C#include <stdio.h> int fun(int x,i

7、nt y) if(x>y) return x; else return y;void main( )int a=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语言的用户标识符命名规则,不能出现在

8、标识符中的是( )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)系统将自动

9、给k赋初值-1D)这时k中无任何值(20) 以下叙述中正确的是( )DA) 函数的定义可以嵌套,但函数的调用不可以嵌套。 B) 函数的定义不可以嵌套,但函数的调用可以嵌套。C) 函数的定义和调用都不可以嵌套。D) 函数的定义和调用都可以嵌套。(21) 下面关于标识符的叙述不正确的是( )B A)标识符中可以有数字 B)关键字可以做标识符  C)标识符中可以有大写字母 D)标识符中可以有下划线(22) 以下关于字符串的叙述中正确的是( )BA) C语言中有字符串常量和变量 B) C语言中没有字符串变量 C) 可以用关系运算符对字符串大小进行比较D) 所有字符串末尾都有结束标志

10、(23) 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )DA)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占同一存储单元 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)ch

11、ar(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 D) a=10, b=10 (28) 设变量定义为int a4;,则表达式( )不符合C语言语法。DA) *a B) a0 C) a D) a+(29) 下列程序输出结果是( ) C #include <stdio.h>void main( )int k=5; k-;printf("%d",+k);A) 3 B) 4 C

12、) 5 D) 6(30) 有以下程序A#include <stdio.h>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) 以下能正确定义字符串的语句是( )DA) char str=”kx43”; B) char str=”; C) char str=064; D) char str=”0”;(32) 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能 将变量c中的大写字母转换为小

13、写字母的语句是( )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 <stdio.h>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). 执行以下程序后,j的值是多少( )A#include <stdio.h>main()int i,j=0;for(i=0;i<3;i+) if(i%2= =0) continue;

14、 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类型的变量C)可以用CIN定义结构体变量

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

16、ain()int i,j=0;for(i=0;i<3;i+) if(i%2=0) continue; j+;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

17、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 <stdio.h>void main( )int k=5;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语言的用户标识符命名规则,不能出现在标识符中的是

18、( )DA) 字母    B) 数字   C) 下划线     D) 连接符(45) 有以下程序C#include <stdio.h>void main( )int i, s=0, t =1,2,3,4,5,6,7,8,9;for(i=0; i<9; i+=2) s+=*(t+i);printf("%dn", s);程序执行后的输出结果是( )A)45 B)20 C)25 D)36(46) 设有int x=21; 则表达式 x % 5的值是( ) A A) 1 B) 2 C) 3 D) 4(47)

19、设有int x=11; 则表达式5/2+ x % 3的值是( ) C A) 2 B) 3 C) 4 D) 0(48) 有以下程序 C #include <stdio.h> int fun(int x,int y) if(x>y) return x; else return y;void main( )int a=4,b=5;printf("%dn",fun(a,b); 程序运行后的输出结果是( ) A) 3  B) 4  C) 5  D) 6(49) 下列程序输出结果是( ) C#include <s

20、tdio.h>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) 以下关于函数的叙

21、述中正确的是( )CA)每个函数都可以被其它函数调用(包括main函数)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;    

22、;         (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); A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2(55) 以下叙述中正确的是( )CA) C语言程序将从源程序中第一个函数开始执行。 B) 可以在程序中由用户指定任意一个函数作

23、为主函数,程序将从此开始执行。C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束。D) main可以作为用户标识符,用户可以命名任意一个函数作为主函数。(56)有以下程序 A#include <stdio.h>void main( )char *p10="abc","aabdfg","dcdbe","abbd","cd"printf("%dn",strlen(p4);执行后输出结果是( )A)2 B)3 C)4 D)5(57) C语言源程序名的

24、后缀是( ) 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 <stdio.h>void main( )int k=5; k+;printf("%d&q

25、uot;,k+);A) 3 B) 4 C) 5 D) 6(61) 有以下程序 B#include<stdio.h>int 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) 下面关于标识符的叙述不正确的是( )B A)标识符中可以有数字 B)关键字可以做标识符  C)标识符中可以有大写字母 D)标识符中可以有下划线(63) 有以下程序 D#include <

26、stdio.h>void main( )int a=1,b=0; printf("%d,",b=a+b);printf("%d",a=2*b);程序运行后的输出结果是( )A) 0,0 B) 1,0 C) 3,2 D) 1,2(64)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句 if (a<b) 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

27、)mm0D)mmi(66) 有以下程序 B#include <stdio.h>int fun(int x,int y) if(x=y) return(x);else return (x+y)/2);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语言中整数可用()进制数、十进制数、十六进制数三种数制表示。八(

28、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(7) C语言中的实型变量分为两种类型,分别是()和双精度。单精度(8)在C程序中,可用()语句结束本次循环,跳过循环体重下面尚未执行的语句,提早进入下一次的循环。 continue(9) 当a=5,b=4,c=2时,表达式a>b!=c的值是()。1 (10) 设有定义语句:int a34=1,2,0,4,6,8,9,则数组元素a21的值是 ()。6(11) C程

29、序是由函数构成的,一个C源程序至少包含一个()函数。main(12)设有说明语句int a34,则数组a中包括了()个数据元素12(13)a数组定义如下:char a3;则a数组中可用最小下标是(),最大下标是()。0 2(14) 表达式 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;,则a

30、11的值是 (),a20的值是 () 2 4(20) )以下程序运行后的输出结果是()。 3 4 #include <stdio.h> void main() int i,j; for(i=6;i>3;i-)j=i; printf(”ddn”,i,j); (21) 有以下程序 6 #include <stdio.h> #define f(x) x*x main()  int a=2,s;   s=f(a+1);   printf(“%dn,s);  程序运行后的输出

31、结果是()。 (22) 下面程序的功能是计算s的值:s=1!+2!+3!+n!,其中n由键盘敲入,n<30,请填空补充完整。#include <stdio.h>void main( )long s, t;int i, n;printf("input n(n<30):");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) 以下程序的运行结果是()7

32、 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;i<3;i+)printf(“%d ”,f(a);(24)求e的近似值,直到某一项的值小于或等于10-7为止。将下列程序补充完整。#include <stdio.h>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(t>1e-7);printf(&

33、quot;e=%fn",sum);(25) 有以下程序 #include<stdio.h>int 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 <stdio.h>void main()int a33=1,2,9,3,4,8,5,6,7,i,s=0;for ( i=0; i<3; i+) s+=aii+ai3-i-1;printf(&quo

34、t;%dn",s);30(27)以下程序运行后的输出结果是( )。void main( ) int x=10,y=20,t; t=x;x=y;y=t; printf(“%d,%d n”,x,y);20 10(28)执行以下程序后,输出#号的个数是( )。#include <stdio.h>void main( ) int i; for(i=1; i<5; i+) putchar('#');(29)执行语句 for(m=1; m<=5; ) m+; 后,变量m的值是( )6(30) 已知字母A的ASCII码为65。以下程序运行后的输出结果是( )

35、#include <stdio.h>void main( )char a, b;a=A+5-3;  b=a+6-2  printf("%d %cn", a, b); 67 G(31) 以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空。#include"math,h"double fun(double x)return(x*x-2*x+6);void main

36、()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 <stdio.h>long ; /*函数说明语句*/ func( );void main( )longn;n=func();printf(“n=%ldn”,n);lo

37、ngfunc( )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 <stdio.h>void main( ) int i; for(i=0; i<10; i+=2) putchar('*');(35)执行语句 for(m=1; m<=5; m+) ; 后,变量m的值

38、是( )。6(36) 以下程序运行后的输出结果是( )。#include <stdio.h>void main( )int x=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 <stdio.h>voidfun(int x)if(x/2>0)f

39、un(x/2);printf(“%d”,x);void main( )fun(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 <std

40、io.h>#define N 4void rotate(int aN)int i,j,t;for(i=0;i<N;i+)for(j=0; ();j+) j<it=aij;();aij=ajiaji=t;编程题:(1) 有一函数: 编写一程序,输入一个x值,输出y值。P58例4-1#include <stdio.h>void main()int x,y;printf("Please input the value of x:");scanf("%d",&x);if (x<0) y=-1;if (x=0) y=0;

41、if (x>0) y=1;printf("The value of y is %dn",y);(2) 输入一个字符,判断它是否是小写字母。如果是,将它转化成大写字母;如果不是,不转换。P86 习题第4章三、1(类似)方法一:#include <stdio.h>void main()char ch;scanf("%c",&ch);ch=(ch>='a' && ch<='z')?(ch-32):ch;printf("%cn",ch);方法二:#inclu

42、de <stdio.h>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 <stdio.h>void main()int i,sum=0;i=1;for(i=1;i<=100;i+,i+)sum=sum+i;printf(&q

43、uot;sum=%dn",sum);(4) 编写程序求出所有满足以下条件的三位整数:其各位数字的立方和等于该数本身。例如:153。P81例4-19 #include <stdio.h>void main()int i,a,b,c;printf("100-000之间的水仙花数有:n");for(i=100;i<1000;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 (类似)

温馨提示

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

评论

0/150

提交评论