C语言程序设计复习资料.docx

上传人:小飞机 文档编号:3155388 上传时间:2023-03-11 格式:DOCX 页数:18 大小:44.08KB
返回 下载 相关 举报
C语言程序设计复习资料.docx_第1页
第1页 / 共18页
C语言程序设计复习资料.docx_第2页
第2页 / 共18页
C语言程序设计复习资料.docx_第3页
第3页 / 共18页
C语言程序设计复习资料.docx_第4页
第4页 / 共18页
C语言程序设计复习资料.docx_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习资料.docx(18页珍藏版)》请在三一办公上搜索。

1、C语言程序设计复习资料C语言程序设计复习资料 一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是。 A)“f” B)x C)65 D)Xab 3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+(int)y%4)执行后,x的值为。 A)17 B)17.500000 C)17.5 D)1.5 4、在C语言中,负整数在内存中以形式释放。 A)补码 B)BCD码 C)反码 D)十进制数 5、在C语言中,要求参加运

2、算的数必须是整数的运算符是。 A)/ B)! C)% D)= = 6、是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char 7、现已定义整形变量int i=1;执行循环语句while(i+6的运行后,a的值为。 A)0 B)1 C)3 D)表达式错误 13、如果a=1,b=2,c=3,d=4,则条件表达式ab?a:cd?c:d的值为。 A)1 B)2 C)3 D)4 14、对于条件表达式?(a+):(a-),其中的表达式M等价于。 A)M= =0 B)M= =1 C)M!=0 D)M!=1 15、在x值处于-2到2,4到8时值为“真”,否则为“假

3、”的表达式是。 A)(2x-2)|(4x8) B)(x=2)|(x4)|(x=8) C)(x=-2)&(x4)&(x-2)&(x4)|(x8)&(x2) 16、已知字母a的ASC|的十进制代码为97,则执行下列语句后输出为。 Char a=a; a-; printf(“%d,%cn”,a+2-0,a+3-0); A)a,c B)a运算不合法,故有语法错误 C)98,c D)格式描述和输出项不匹配,输出无定值 18、C语言中,逻辑“真”等价于。 A)大于零的数 B)大于零的整数 C)非零的数 D)非零的整数 19、下列语句中,符合语法的语句式。 A)a+b=3 B)a=7 C)a=c+b+3=6

4、; D)a=8,b=a+7; 20、若x为float型变量,则以列程序段结果是。 x=1234.6789; printf(“%-2.1f”,x); A)输出格式描述符的域宽度不够,不能输出 B)输出为1234.7 C)输出为1234.6 D)输出为-1234.6 21、下面函数的功能是。 Int funl(char*x) char*y=x; while(*y+); return(y-x-1); A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串y D)将字符串x连接到字符串y后面 22、指针变量a所指的字符串长度为。 Char*a=”n”My Name is ”Zhang

5、 Li”n”; A)26 B)27 C)28 D)23 23、若有以下说明和语句,则输出结果是。 Char*sp=”n”; Printf(“%d”,strlen(sp); A)6 B)3 C) 5 D)字符串中有非法自负,输出值不定 24、若有以下的说明语句,则对字符串中字符的不正确引用是( D ). Char*strp=“string”; A)*strp B)*(strp+i) C)strpi D)strp 25、函数调用:strcat(strcpy(str1,str2),str3)的功能是。 A) 将串str1复制到串str2中后再连接到串str3之后 B) 将串str1连接到串str2之

6、后再复制到串str3之后 C) 将串str2复制到串str1中后再将串str3连接到串str1之后 D) 将串str2连接到串str1之后再将串str1复制到串str3之后 26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式。 int a; float b; scanf(“a=%d,b=%f”,&a,&b); A)12 13.6 B)a=12, b=13.6 C)12, 13.6 D)a=12 b=13.6 27、对下面的程序说法正确的是。 main int x+3,y=0,z=0; if(x=y+z) printf(“*”); else printf(“#”)

7、; A)有语法错误,不能通过编译 B)输出为* C)输出为# # # # D)通过编译,但是不能运行 28、下面程序的输出是。 main int x=10,y=3; printf(“%dn”,y=x%y); A)0 B)1 C)3 D)不确定的值 29、是不正确的C语言赋值语句。 A)a=a+1; B)i+; C)a*=1,b=8; D)a=3 30、C语言程序的三种基本程序是。 A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构 C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构 33、以下程序段。 int x=1,y=4; printf(xy?”x=%d”:

8、”y=%d”,x,y); A)输出控制格式错误 B)输出:x=1 C)输出:y=1 D)输出:y=4 34、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与是正确的。 A)缩排位置相同的if B)其之前最近的if C)其之后if D)同一行上的if 35、下列关于switch语句和break语句的结论中,只有是正确的。 A) break语句是switch语句的一部分 B) 在switch语句中可以根据需要使用或不使用break语句 C) 在switch语句中必须使用break语句 D) 以上三个结论有两个是正确的 36、设I和x都是int类型,则对于for循环语句for(i

9、=0,x=0;i9;i+),下列哪句话正确( B )。 A)执行8次 B)执行9次 C)是无限循环 D)循环体一次也不执行 40、char(*A)5,则标识符A的意义时。 A) A是一个指向有5个字符型元素的指针变量 B) A是一个有5个元素的一维数组,每个元素指向字符型的指针变量 C) A是一个指向字符型的函数的指针变量 D) A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量 112、C语言程序的三种基本结构是 A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构 C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构 1下列合法的字符常量是。 A.“f

10、” B.x C.65 D.Xab 2下面那个是属于合法的标识符 A.99 B.1_s C. ab D.vb 3在C语言中,要求参加运算的数必须是整数的运算符是。 A. / B. ! C. % D. = = 4现已定义整形变量int i=1;执行循环语句while(i+5);后i的值为。 A. 1 B. 5 C. 6 D. 以上三个答案都不正确 5下列语句的输出结果是。 printf(“%fn”,(float)(2+4)/2); A. 有语法错误不能通过编译 B. 3 C. 3.0 D. 3.000000 6设C语言中,int类型数据占2个字节,则long类型数据占个字节。 A. 1 B. 2

11、C. 8 D. 4 7现有表达式y=x1?1:(x6的运行后,a的值为。 A. 0 B. 1 C. 3 D. 表达式错误 9表达式a=3,a+1,a*a的值是 A.2 B.9 C. 16 D.4 10下列语句中,符合语法的语句式。 A. a+b=3 B. a=7 C. a=c+b+3=6; D. a=8,b=a+7; 在c中单精度数据类型的精度是几? A.8 B.6 C. 7 D. 5 5在C语言中,用表示逻辑值“真”。 A.1 B.非0的数 C. “a” D. 101 6表达式2.5+7%3*3%2/4的结果是 A.2.4 B.2.75 C. 3 D. 2.5 7表达式!4|3&2的结果是

12、A.1 B.0 C.4 D. 2 8现有表达式y=x1?1:(xb) k=0;else k=1;”和其等价的是 A.k=(ab)?1:0 B.k=ab; C. k=a=b; D. a=b?0:1; 10设x=3,执行语句y=x+后,x、y分别等于 A.3,3 B.1,2 C. 3,4 D. 4,3 11表达式a=3,a=a+1,a*a的值是 A.2 B.9 C. 16 D.4 12函数调用:strcat(strcpy(str1,str2),str3)的功能是。 A. 将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后 C.将串st

13、r2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3之后 13break语句的作用是 A.结束本次循环 B.结束所有循环 C. 结束一条语句 D.结束整个程序 14下列程序的输出结果是。 fun(int a, int b, int c) c =a*b; main( ) int c=5; fun(2,3,c); printf(”%dn”,c); A.0 B.5 C.6 D.无法确定 二、 填空。 三、5. 下述函数的功能是_将数组a的元素由小到大排序_ . void func(int a,int n) int i,j; f

14、or(i=1;i0 & aj =y&y=z)_。 3设ch是字符型变量,判断ch为英文字母的c语言表达式是: (ch=A&ch=a&ch=-2&x=4&x=8)_。 8下面函数的功能是_求字符串的长度_。 Int funl(char*x) char*y=x; while(*y+); return(y-x-1); 。 9设I和x都是int类型,则对于for循环语句for(i=0,x=0;i9;i+)执行了_9_次。 10在C语言中,逻辑值“真”用_非0的数_来表示。 四、 程序运行结果 1下列程序输出的结果是 11,13,14,16,17,19,20 。 Main int n; for(n=10

15、;n=20;n+) if(n%3= =0) Continue; Printf(“%d”,n); 2下列程序段的输出是_5_。 #define f(a, b, x) a*x+b printf(%d, f(3,2,1); 3#include #define M 3 #define N M+1 main printf(“%dn”,N); 4main int array5=2,4,6,810; int *pointer=array; printf(”%d”,array0); printf(”%d”,*(array+1); printf(”%d”,*(pointer+2); printf(”%d”,*(

16、pioter+); 四、程序分析 2下面程序的功能是什么? #include “stdio.h” main int a,b,c,temp; printf(“n请输入三个数:”); scanf(“%d%d%d”,&a,&b,&c); printf(“a=%d,b=%d,c=%d”,a,b,c); temp=a; a=c; c=b; b=temp; printf(“n交换之后a=%d,b=%d,c=%d”,a,b,c); 3下面程序的功能是什么? #include prime(int a) int e,i,yes; yes=1;e=a/2; i=2; while(i=e)&yes) if(a%i)

17、= =0) yes=0; else i+; return yes; main int x; printf(“输入一个整数给:”); scanf(“%d”,&x); if(prime(x) printf(“YESn”); else printf(“Non”); 4. 下列程序的输出结果是。 #include void fun; void main int x=1; if(x= =1) int x=2; printf(“%d”,+x); void fun printf(“%d”,x+); A)2,1,1 B)1,2,1 C)2,2,2 D)2,2,1 5. 以下程序的输出结果是。 main cha

18、r *a5=“how”,”do”,”you”,”do”,”!”; char *p; int i; p=a; for(i=0;i4;i+) printf(“%s”,pi); A)howdoyoudo! B)how C)howdoyoudo 6. 下述程序的输出结果为。 #include void main D)hdyd int a5=2,4,6,8,10; int *p=a,*q=&p; printf(“d%,”,*(p+); printf(“%d”,*q); A)4,4 B)2,2 C)4,5 D)2,4 五、程序填空。 1. 下面程序是求100200间的全部素数。 #include main

19、 (1)int prime(int n) ; for (m=101;m=200;m=m+2) if ( (2)prime(m) ) printf(“%d”,m); int prime(int n) /* 判断n是否为素数 */ int flag=1,i; for (i=2;i=0&si=9_;I+) *a=_(4)sign_; *a*=sign; 4. 本程序用改进的气泡排序法对数组a的元素从小到大排序。 void bubble(int a,int n) int j,k,jmax,temp; jmax=_(1)_n-1_; do k=_(2)_0_; for(j=0;jaj+1) temp=a

20、j; aj=aj+1; aj+1=temp; k=_(3)_j_; jmax=_(4)_k_; while(jmax0); 4、程序分析 程序有错误么?如有,请给予改正。并写出程序运行结果。 指出哪些变量属于局部变量,哪些变量属于全局变量?同时给出给各变量的作用范围。 1int s1, s3,v; 2int vs(int a,int b,int c) 3 int k; 4 k=a*b*c; s1=a*b; s2=b*c; s3=a*c; 5 return k; 6 7 int s2; 8 main 9 int l,w,h; 10 l=3;w=2;h=5; 11 v=vs(l,w,h); 12

21、printf(v=%d ,s1=%d , s2=%d, s3=%dn,v,s1,s2,s3); 13 程序有错误,改正:第3行与第4行之间插入语句extern int s2;程序运行结果:30,6,10,15。 局部变量:a,b,c,k,l,w,h,它们的作用范围只在自己函数内,全局变量:s1,s3,v,s2;其中s1,s3,v的作用范围为113,s2的作用范围为713。 下面程序的功能是什么? 对三个数排序 #include “stdio.h” main int a,b,c,temp; printf(“n请输入三个数:”); scanf(“%d%d%d”,&a,&b,&c); printf(

22、“a=%d,b=%d,c=%d”,a,b,c); temp=a; a=c; c=b; b=temp; printf(“n交换之后a=%d,b=%d,c=%d”,a,b,c); 五、程序填空 下面程序的功能是:输入10个整数,将其中最小的数与第一个数队换,把最大的数与最后一个数对换。 Main int number10; Input(number); _(4) max min value(number)_; Output(number); Input(int number10 ) int i ; Printf(“input 10 number:”); For(i=0;i=10;i+) Scanf

23、(“%d”,&numberi); Max_min_value(int array10) int *max,*min,*p,*array_end; Array_end=array+10; Max=min=array; For(p=array+1;_ _ (5) p*max)_(6) max=p;_; else if(*p*min) min=p; *p=array0;array0=*min;*min=*p; _(7)_*p=array9;array9=*max;*max=*p;_ Return; Output(int array10) int *p; Printf(“Now,they are:”); For(p=array;p*p2 ) exchange( (5) p1,p2 ) printf(“min=%d, max=%dn”, (6)*p1,*p2 );

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号