C语言复习题库.doc

上传人:h**** 文档编号:1686095 上传时间:2019-03-11 格式:DOC 页数:13 大小:250.50KB
下载 相关 举报
C语言复习题库.doc_第1页
第1页 / 共13页
C语言复习题库.doc_第2页
第2页 / 共13页
C语言复习题库.doc_第3页
第3页 / 共13页
C语言复习题库.doc_第4页
第4页 / 共13页
C语言复习题库.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、第 1 页 共 13 页1、下列叙述中错误的是(A) 。A一个 C 语言程序只能实现一种算法BC 程序可以由多个程序文件组成CC 程序可以由一个或多个函数组成D一个 C 函数可以单独作为一个 C 程序文件存在2、以下叙述中正确的是(C) 。AC 程序的基本组成单位是语句 BC 程序中的每一行只能写一条语句C简单 C 语句必须以分号结束 DC 语句必须在一行内写完3、以下叙述中正确的是(C)。AC 程序中的注释只能出现在程序的开始位置和语句的后面BC 程序书写格式严格,要求一行内只能写一个语句CC 程序书写格式自由,一个语句可以写在多行上D用 C 语言编写的程序只能放在一个程序文件中4、按照 C

2、 语言规定的用户标识符命名规则,不能出现在标识符中的是(B)。A大写字母 B连接符 C数字字符 D下划线5、下列定义变量的语句中错误的是(D) 。Aint _int; Bdouble int_; Cchar For; Dfloat USS6、以下选项中不能作为 C 语言合法常量的是(A) 。A345 B。 0.1c+6 Ca D0117、以下选项中不属于字符常量的是 (B)。AC B“C“ CxCC0 D072 8、下列常量哪个是不合法的(B) 。A0x4d00 B BASIC C D “/045”9、以下 4 组用户定义标识符中,全部合法的一组是(A)。A_main BIf Ctxt Din

3、tenclude -max REAL k_2sin turbo 3COM _00110、以下选项中不属于字符常量的是(B)。AC B“C“ CxCC D07211、下列变量名中哪个是不合法(C) 。ATurbo_C B vc Cint D_2ab12、设变量已正确定义并赋值,以下正确的表达式是(B) 。Ab=3+ Bx=2,+y Ca=14%3.3 Dx=y+3=213、以下定义语句中正确的是 (D)。Aint a=b=0 ; Bchar A=65+1,b=b; Cfloat a=1,*b= Ddouble a=0.0,b=1.1; 14、以下选项中正确的定义语句是(C) 。Adouble a

4、;b; B double a=b=7 Cdouble a=7,b=7; Ddouble,a,b;15、以下不能正确表示代数式 2ab/cd 的 C语言表达式是(D) 。A2*a*b/c/d Ba*b/c/d*2 Ca/c/d*b*2 D2*a*b/c*d16、若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是(A) 。A+x,y=x- Bx+1=y Cx=x+10=x+y Ddouble(x)/1017、以下关于逻辑运算符两侧运算对象的叙述中正确的是(D) 。A只能是整数 0 或 1 B只能是整数 0 或非 0 的整数C可以是结构体类型的数据 D可是任意合法的表达式18、若有定

5、义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+): (y+)中的条件表达式(x-y)等价的是(C) 。A (x-y0) B(x-y0) D(x-y=0)19、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)。Ak+ Bk+=1 C+k Dk+120、若以下选项中的变量已正确定义,则正确的赋值语句是(C)。Ax1=26.8%3 B1+2=x2 Cx3=0x12 Dx4=1+2=3;21、定义 int x;float y; 正确的输入语句是第 2 页 共 13 页(C) 。Ascanf(“%d%d“,x,y); Bscanf(“

6、%d%d“,Cscanf(“%d%f“, Dscanf(“%f%d“,22、当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是 (B)。A(c=2)(c=4)(c=6) B(c=2x=y;y=z;执行后 x,y,z 的值是 (B)。Ax=10,y=20,z=30 Bx=20,y=30,z=30Cx=20,y=30,z=10 Dx=20,y=30,z=2028、对 for(表达式 1; ; 表达式 3)可理解为(B)。A for(表达式 1; 0; 表达式 3)B for(表达式 1; 1; 表达式 3)C for(表达式 1; 表达式 1; 表达式 3)D for(表达式 1; 表达

7、式 3; 表达式 3)29、以下叙述中正确的是(C)。Abreak 语句只能用于 switch 语句体中Bcontinue 语句的作用是:使程序的执行流程跳出包含它的所有循环Cbreak 语句只能用在循环体内和switch 语句体内D在循环体内使用 break 语句和continue 语句的作用相同30、下列叙述中正确的是(D) 。Abreak 语句只能用于 switch 语句B在 switch 语句中必须使用 defaultCbreak 语句必须与 switch 语句中的case 配对使用D在 switch 语句中,不一定使用 break语句31、在嵌套使用 if 语句时,C 语言规定els

8、e 总是(C) 。A和之前与其具有相同缩进位置的 if 配对B和之前与其最近的 if 配对C和之前与其最近的且不带 else 的 if 配对D和之前的第一个 if 配对32、若 i 为整型变量,则以下循环执行次数是(B)。for(i=2;i=0;) printf(“%d“,i-);A无限次 B 0 次 C 1 次 D 2次33、以下能正确计算 123.10 的程序段是(C)。A do i=1; s=1; Bdo i=1;s=0;s=s*i; s=s*i; i+; i+;while(i2 !1 46、以下叙述中错误的是 (D) 。A在程序中凡是以“”开始的语句行都是预处理命令行 B预处理命令行的

9、最后不能以分号表示结束 C#define MAX 是合法的宏定义命令行 DC 程序对预处理命令行的处理是在程序执行的过程中进行的 47、设有定义语句 int(*f)(int);,则以下叙述正确的是 (B)。Af 是基类型为 int 的指针变量 B f 是指向函数的指针变量,该函数具有一个 int 类型的形参 C f 是指向 int 类型一维数组的指针变量 D f 是函数名,该函数的返回值是基类型为 int 类型的地址 48、判断字符串 s1 是否大于字符串 s2,应当使用(D)。A if(s1s2) B if(strcmp(s1,s2)C if(strcmp(s2,s1)0)D if(strc

10、mp(s1,s2)0)49、判断字符串 a 和 b 是否相等,应当使用(C) 。Aif(a=b) Bif(a=b) C. if(strcmp(a,b) Dif(strcpy(a,b) 50、设已有定义:float x;则以下对指针变量 p 进行定义且赋初值的语句中正确的是(D)。Afloat *p=1024; Bint *p=(float x);Cfloat p= Dfloat *P=51、若已有说明 float *p,m=3.14; 要让 p 指第 4 页 共 13 页向 m,则正确的赋值语句是( B)。A p=m; B p=C *p=m; D *p=52、若有定义:int *p4; 则标识

11、符 p(B )。A 是一个指向整型变量的指针B 是一个指针数组名C 是一个指针,它指向一个含有四个元素的一维数组 D 说明不合法53、定义结构如下:struct stulong sno;char name10;int a;float b; 则 sizeof(struct stu)的值为(B) 。A. 4 B. 20 C. 22 D. 2454、以下对结构变量 stu1 中成员 age 的非法引用是(B)。struct student int age;int num; stu1,*p;p=A stu1.age B p.age C p-age D (*p).age55、在 C 语言中,只有在使用时

12、才占用内存单元的变量,其存储类型是 (A)。Aauto 和 register Bextern 和register C auto 和 static D static和 register 56、设有定义语句:char c1=32,c2=32; 则以下表达式中值为零的是(A)。A. c1c2 B. c1 以“只读”方式打开文件 C:aa.dat 的正确语句是 (D)。Afp=fopen(“C:aa.dat“,“w“); Bfp=fopen(“C:aa.dat“,“r“);Cfp=fopen(“C:aa.dat“,“w“);Dfp=fopen(“C:aa.dat“,“r“);60、若有定义: int

13、a=1,b=2,c=3;则表达式(ac?c:(a0)a-=2;elseif(a=0)a-=2;elsea+=10;printf(“%dn“,a);输出结果为:_0_。2、main() int x=6,y=2; if(x5)if(x0)printf(“%d“,x+);elseprintf(“%d“,x-);printf(“%d“,x);输出结果为:_6 7_。3、#include main() int x=1,y=2,z=3;if(xy)if(yz) printf(%d ,+z);else printf(%d ,+y);printf(%dn,x+);输出结果为:_1_。4、main() int

14、x,y,z;x=y=z=0; +xprintf(“%d %d %dn“,x,y,z);第 5 页 共 13 页输出结果为:_1 1 0_。5、main() int x=2;switch(x=2) case 1:printf(“*“);break;case 2:printf(“%“);break;输出结果为:_*_。6、有以下程序 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3:

15、a+; b+; printf(“a=%d,b=%dn”,a,b); 输出结果为:_ a=2,b=1_。 7、main() int i;for(i=0;i0 for( ; x0; x-) if(x%3)printf(“%d,”,x- -); continue; printf(“%d,”,- -x); 输出结果为: 8,5,4,2 。13、main() int i,j;for(i=1;i int f(int x) int y; if(x=0|x=1) return (3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%dn”,z);

16、 输出结果为:_6_。23、int fun(int x) if(x0)return x+fun(x-1);return 1; main() printf(“%dn“,fun(5); 输出结果为:_16_。24、#include void recur(int x);void main() recur(3);void recur(int n) if(nint fun(int a,int b) if(b=0) return a;else return(fun(-a,-b);main() printf(%dn,fun(4,2);输出结果为: 2 。26、main() int a4=1,2,3,4; i

17、nt i;for(i=0;i=0;i-)printf(“%d “,ai);printf(“n“);输出结果为: 7 5 3 1 。27、main() int k;int a33=1,2,3,4,5,6,7,8,9;for(k=0;k=0;i- -)printf(“%d “,*(a+i);putchar(n); 输出结果为:_4 3 2 1_。Iyi31、void convert(char *a,int n) int i;if( (i=n/10)!=0 )convert(a+1,i);*a=n%10+0;main() char str10=“ “;convert(str,123);puts(st

18、r);输出结果为:_321_。32、 #include main()char p20=a,b,c,d,q=”abc”, r=”abcde”;strcpy(p+strlen(q),r); strcat(p,q);printf(“%d%dn”,sizeof(p),strlen(p);输出结果为:_20 11_。33、int fun(char s) int n=0;while(*s=0) n=10*n+*s-0;s+;return(n); main() char s10=1,3,4,*,2,9,*,0,*;printf(“%dn“,fun(s); 输出结果为:_134_。34、main() int

19、i;char *p4=“ABCD“,“BCDE“,“CDEF“,“DEFG“;char *pp=p;for (i=0;istruct st int x,y; data2=1,10,2,20;main() struct st *p=data;printf( %d,p-y); printf( %dn,(+p)-x);输出结果为: 10,2 。37、struct info int k; char *s; t;void f(struct info t) t.k=1997;t.s=“Borland“;main() t.k=2000;t.s=“Inprise“;f(t);printf(“%d,%sn“,t

20、.k,t.s);输出结果为: 2000,Inprise 。38、#includestruct NODE char num;struct NODE *next;main( ) struct NODE *p,*q,*r;p=(struct NODE *)malloc(sizeof(struct NODE);q=(struct NODE *)malloc(sizeof(struct NODE);r=(struct NODE *)malloc(sizeof(struct NODE);p-num=a; q-num=b; r-num=c; r-next=q;q-next=p;p-next=NULL;第 9

21、 页 共 13 页printf(“%cn“,r-next-next-num);输出结果为:_a_。39、#include main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“dl.dat”,”w”); for(i=0;i=10)return f1(i-5);elsereturn f1(i);int f1(int i) return i-5;输出结果为:_2_。三、程序填空题1、下面程序的功能是分离出一个三位整数的百十个位。请填空。main() int n,i,j,k;scanf(“%d“,i=n/100;j= n/10%10;k=n%10;printf(

22、“%d %d %d“,i,j,k);2、以下程序是求出1+1/3+1/5+1/99 的和。main() int i;float s=0;for(i=1 ;i1e-6;i+) s=s*i; e=e+1/s; printf(“%lf“,e); 4、以下程序的功能是:输入 2 个整数,求出它们的最大公约数并输出,请填空。main( ) int gcd(int m,int n);int a,b;scanf(“%d,%d“,printf(“%d“,gcd(a,b);int gcd(int m,int n) int r;r=m%n;while(r!=0) m=n;n=r; r=m%n;return n;5

23、、实现一个有 10 元素的数组的翻转。main () int i,a10=1,2,3,4,5,6,7,8,9,10,n=10; printf(“翻转前:n“); for (i=0;iaji) k=j;s+=aki;*sum=s;main() int xMN=3,2,5,1,4,6,8,3,9,s;SumColumMin( x,printf(“%dn”,s);7、以下程序的功能是:再 main 函数中调用 mylength 求一个字符串的长度。请填空。int mylength(char *p) int len=0;while(*p!=0) len+; p+;return(len);main()c

24、har str180;scanf(“%s“,str1);printf(“str1 的长度=%d“,mylength(str1);8、求整数 x,y,z 中的最大值。main() int x,y,z,max,t;scanf(“%d%d%d“,if(xz)max=x;elsemax=z;printf(“max=%dn“,max);9、下列程序的功能是从键盘输入两个 int型数据给变量 x 和 y,然后在 main()函数中调用 exchange()函数将变量 x 和 y的内容对调。void exchange(int *a,int *b) int t;t=*a; *a=*b; *b=t;main()

25、 int x,y;scanf(“%d%d“,printf(“x=%d y=%dn“,x,y);exchange(printf(“x=%d y=%dn“,x,y);10、定义一个结构类型,要求输入一个学生的数学和计算机两门课的成绩,然后计算并输出其平均成绩.main() struct student int math,computer;stu;printf(“请输入两门课的成绩: “);scanf(“%d%d “,printf(“平均成绩 %f “, (stu.math+puter)/2); 11、将一串数字字符串中各数字求和,如“126“求和为 9。main() char *str=“12345“,*p;int s=0;p=str;while (*p!=0;) s=s+*p-0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。