C语言复习题-2014
- 格式:doc
- 大小:219.00 KB
- 文档页数:20
一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
2014计算机二级c语言试题及答案一、单项选择题(每题1分,共40分)1. C语言中,用于定义变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = 'Hello';D. char str[6] = 'Hello';答案:A3. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};5. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. strcmp()D. strlen()答案:A6. 在C语言中,以下哪个选项是正确的函数定义?A. int function(int a, int b) { return a + b; }B. int function(int a, int b) = { return a + b; }C. int function(int a, int b) { return a + b; }D. int function(int a, int b) { return a + b; }答案:A7. C语言中,以下哪个关键字用于定义函数?A. defineB. defC. functionD. void答案:D8. 在C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D9. C语言中,以下哪个选项是正确的条件语句?B. elseC. switchD. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针定义方式?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
2014年C语言试题一、选择题(40*1)1 对用C语言编写的代码程序,以下叙述中正确的是(B)A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行2 以下选项中正确的实型常量是(D)A、0B、3. 1415C、0.03*102D、.323 C语言中不合法的字符串常量是(B)A、"\121 "B、'y= 'C、"\n\n "D、"ABCD\x6d "4 C语言中运算必须是整型的运算符是(B)A、/B、%C、*D、+5 C语言中的简单数据类型有(C)A、整型、实型、逻辑型B、整型、字符型、逻辑型C、整型、实型、字符型D、整型、实型、逻辑型、字符型6 以下选项中不合法的用户标识符是(D)A、PRINTFB、fileC、MainD、wb-17 以下非法的赋值语句是(C)A、n=(i=2,++i)B、j++C、++(i+1)D、x=i>08 C语言中不合法的常量是(D)A、'\xff 'B、'\65 'C、'& 'D、'\028 '9 C语言中,字符(char)型数据在计算机内存中的存储形式是(D)A、反码B、补码C、EBCDIC码D、ASCII码10 以下程序的输出结果是(D)void main(){ int x=10,y=3;printf("%d\n ",y=x/y);}A、0B、1C、不确定的值D、311 以下程序段的输出是(A)int x=496;printf("*%-06d*\n ",x);A、*496 *B、* 496*C、*000496*D、输出格式不合法12 若变量已经正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是(D)A、read(a,b,c);B、scanf("%d%d%d ",a,b,c);C、scanf("%D%D%D ",&a,&b,&c)D、scanf("%d%d%d",&a,&b,&c)13 以下合法的C语言赋值语句是(D)A、a=b=58B、k=int(a+b);C、a=58,b=58D、- - i;14 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是(A)A、1B、0C、2D、615 以下程序执行后输出结果是(B)void main(){ int i=10,j=1;printf("%d,%d\n ",i--,++j);}A、9,2B、10,2C、9,1D、10,116 设有语句char a= '\172 ';,则变量a(A)A、包含一个字符B、包含2个字符C、包含个字符D、说明不合法17 若变量已经正确定义,要将a和b中的数据进行交换,下面不正确的语句是(C)A、a=a+b,b=a-b,a=a-b;B、t=a;a=b;b=tC、a=t;t=b;b=a;D、t=b;b=a;a=t;18 若变量已经正确说明,要求用以下语句给c1赋值字符%,给c2赋值字符#,给a赋值2.0,给b赋值4.0,则正确的输入形式是(B)scanf("%f%c%f%c ",&a,&c1,&b,&c2);A、2.0 % 4.0 #B、2.0%4.0#C、2 % 4#D、2 % 4 #19 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)A、6.500000B、7C、5.500000D、6.00000020 以下程序执行后的输出结果是(D)void main(){int i=1,j=1,k=2;if((j++||k++)&& i++) printf("%d,%d,%d\n ",i,j,k);}A、1,1,2B、2,2,1C、2,2,2D、2,2,321 下列运算符中优先级最高的运算符是(A)A、!B、%C、-=D、&&22 运行以下程序后,输出的结果是(A)void main(){ int k=-3;if(k<=0)printf("****\n ");elseprintf("&&&&\n ");}A、****B、&&&&C、****&&&&D、有语法错误不能通过编译23 以下程序段的输出结果是(B)void main(){ char x= 'A ';x=(x> 'A ' && x< 'Z ')?(x+32):x; printf("%c\n ",x ); }A、aB、AC、ZD、z24 以下的程序执行后输出的结果是(A)void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n ",d);else if((c-1>=d)==1)printf("%d\n ",d+1);else printf("%d\n ",d+2);}A、3B、2C、编译出错D、425 若执行以下程序时从键盘上输入3和4(输入方式:3 4),则输出的结果是(C)void main(){ int a,b,s;scanf("%d%d ",&a,&b);s=a;if(as*=s;printf("%d\n ",s);}A、14B、18C、16D、2026 设a、b和c都是int变量,且a=3,b=4,c=5,则以下的表达式中,值为0的表达式是(D)A、a&&bB、a<=bC、a||b+c&&b-c D、!((a<b)&&!c||1)< p="">27 以下的程序运行结果是(D)void main(){ int a=2,b=-1,c=2;if(a<b)< p="">if(b<0) c=0;else c+=1;printf("%d\n ",c);}A、0B、1C、3D、228 以下程序的输出结果是(C)void main(){ int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n ",a,b);}A、a=2,b=2B、a=1,b=1C、a=2,b=1D、a=1,b=029 若x是int类型变量,以下程序段的输出结果是(D)for(x=3;x<6;x++)printf((x%2)?( "**%d "):( "##%d\n "),x);A **3C ##3D **3##4##4 **4 **4##5 **5**5 ##530 以下程序的输出结果是(A)int n=10;while(n>7){ n--;printf("%d ",n);}A、987B、1098C、10987D、987631 以下程序段的输出结果是(C)int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4){m++;} printf("%d\n ",m);A、12B、15C、20D、2532 以下程序段的输出结果是(C)int x=3;do{ printf("%3d ",x-=2);} while(!(--x));A、1C、1 -2D、死循环33 以下的程序输出结果为(A)void main(){ int i;for(i=0;i<3;i++)switch(i){ case 1:printf("%d",i);case 2:printf("%d",i); default: printf("%d",i);}}A、011122B、012C、012020D、12034 以下程序的输出结果是(C)# includevoid man(){ int i;for(i=1;i<5;i++){if(i%2) putchar('< ');else continue;putchar('> ');}putchar('# ');}A、<><><>#B、><><><#C、<><>#D、><><#35 若想将一个字符数组a的内容存入另一个字符数组b中,下列正确的是(B)A、b=aB、strcpy(b,a)C、strcpy(a,b)D、strcat(b,a)36 下面的程序输出结果是(A)void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、4C、1D、237 以下对整型数组a的正确说法是(D)A、int a(10);B、int n=10,a[n];C、int n;sacnf("%d ",&n);int a[n]D、#define SIZE 10 int a[SIZE];38 以下程序的输出结果是(B)void main(){ int i,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n ",sum);}A、15B、不确定C、16D、039 以下程序的输出结果是(A)void main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d, ",x[i][2-i]);}A、3,5,7B、1,4,7C、1,5,9D、3,6,940 若fp是指向某文件的指针,且已经读到文件的末尾,则库函数feof(fp)的返回值是(A)A、EOFB、-1C、NULLD、非零值二、填空题(20*1)1、C语言中函数的组成部分包括函数头和函数体。
2014(一) 程序设计(50分)一、单项选择题(共计20分,每小题2分)1.C 语言程序设计是一种( )A 、机器语言B 、汇编语言C 、高级语言D 、英语 2.C 语言程序的基本单位是( )A 、程序行B 、字符C 、语句D 、函数3.C 语言程序的三种基本结构是( )A 、顺序结构,选择结构,循环结构B 、递归结构,循环结构,转移结构C 、嵌套结构,递归结构,顺序结构D 、循环结构,嵌套结构,顺序结构4.下列运算符中优先级最高的是( )A 、<B 、&&C 、+D 、!=5.与数学式子129 x x n对应的C 语言表达式是( ) A 、9*x^n/(2*x-1) B 、9*x**n/(2*x-1)C 、9*pow(x,n)/(2*x-1)D 、9*pow(n,x)/(2*x-1)6.有如下程序,写出其执行结果( )#inc lude ”stdio.h”main(){float x=2.0, y;if (x<0.0)y=0.0;else if (x<10.0)y=1.0/x;else y=1.0;printf(”%f\n”,y);}A、0.000000B、0.250000C、0.500000D、1.00000047.如下程序段执行时()x=-1;do{ x=x*x;}while (!x);A、循环体将执行一次B、循环体将执行两次C、循环体将执行无数多次D、系统将提示有语法错误8.执行下面语句的输出为()int i =10;if(i<=0)printf(“* * * *\n”);elseprintf(“$ $ $ $ \n”);A、* * * *B、$ $ $ $C、$ $ $ $ cD、有错,执行不正确9.下列程序段的执行结果为()for(i=0;i<5;i++){for(j=0;j<i+1;j++)printf( "*");printf(“\n”);}10.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()A、i=*p;B、*p=*&j;C、i=&j;D、 i=**p;二、填空题(共计16分,每空2分)1.语句print(“%d”, 7%4); 的输出结果是:。
C 语言课程考试试卷课程名称:《C 语言程序设计》年级: 班级:姓名:_______________ 学号:_________________ 考试(考查) 闭卷选择题(每题2分,共计100分)1. 以下叙述正确的是( )A) 在C 程序中,main 函数必须位于程序的最前面 B) C 语言的每一行中只能写一条语句 C) C 语言本身没有输入输出语句D) 在对一个C 语言进行编译的过程中,可发现注释中的拼写错误 2. 不属于字符型常量的是__________。
A) 'B' B) 'C' C) '\n' D) P3. 判断 char 型变量ch 是否是大写字母的正确表达式是_________。
A) 'A'<=ch<='Z' B) (ch>=‘A')&(ch<='Z') C) (ch>='A')&&(ch<=‘Z') D) ('A'<=ch)AND('Z'>=ch)4. 若有说明: int a[10]; 则对 a 数组元素的正确引用是________。
A) a[10] B)a[3.5] C) a(5) D) a[10-10]5. 以下二维数组 a 的正确说明是________。
A) int a[1,1]; B) float a(3,4); C) double a[1][4]; D) float a(3)(4);6. 设有: int a=2,b=3,c=7,d=8,m=3,n=3; 执行 (m=a>b)&&(n=c>d) 后的 n 值为_________。
A) 0 B) 1 C ) 2 D) 37. 已知 int x=10,y=20,z=30; 以下语句执行后, x 、y 、z 的结果是。
期末复习一、题型:共有5大题:1、单项选择题(每小题1.5分,小计30分)2、填空题(每空2分,小计20分)3、写出下列程序的运行结果(每小题5分,小计20分)4、程序填空(每空2分,小计10分)5、程序设计题(有3小题,其中:第1、2小题各6分,第3小题8分,小计20分)二、考试形式、时间、涉及内容考试形式为闭卷,时间为90分钟涉及内容:各讲内容均有涉及三、样题(与考题无必然联系,仅供参考)(1)单选题:1、C语言中,运算对象必须是整型的运算符是【】A. /B.%C. ++D. !2、下列标识符中,不合法的是【】A. x2B. sizeofC. _123D. char23、若x, i, j和k都是int型变量,则计算表达式x=(i=4, j=16, k=32)后,x的值为【】A. 4B. 16C. 32D. 524、设有数组定义:char a[ ]="China";则数组a所占的空间为【】字节A. 4B. 5C. 6D. 75、设d是double型变量,若要从键盘输入数据给d,正确的语句是【】A. scanf(d);B. scanf(" %f", d) ;C. scanf(" %f", &d) ;D. scanf(" %lf", &d) ;6、以下程序段的输出结果是【】int x=3;do{printf("%d",x-=2);} while(!(--x));A. 1-2B. 30C. 1D. 无输出7、下列程序段执行之后,输出的结果是【】double x=4,y;if (x<0)y=0;else if(x<10)y=1.0/x;elsey=1;printf("%.2f\n",y);A. 0.25B. 0.50C. 0.75D. 1.008、若已定义: int a[ ]={0, 11, 22, 33, 44, 55, 66, 77, 88, 99}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用是【】A. p[i]B. *(&a[i]) //a[i]C. a[10]D. a[p-a]//a[0]9、现有定义:int *p[3]; 下列关于标识符p的描述中,正确的是【】A.定义不合法B. 是一个指向整型变量的指针C. 是一个指针,它指向一个具有3个元素的一维数组D. 是一个指针数组名,每个元素是一个指向整型变量的指针10、若有如下定义,则对ex中的a成员的正确引用是【】struct sk { int a; float b;} ex, *p = &ex;A. (*p).ex.aB. p->aC. p->ex.aD. p.ex.a11、判断字符串s1和s2是否相等的表达式是【】A. s1=s2B. s1==s2C. strcpy(s1,s2)==0D.strcmp(s1,s2)==012、数字11与13进行“位或”运算(即11|13)的结果是【】A. 1B. 11C. 13D. 15(2)填空题1、一个C语言程序的执行是从main 函数开始的。
2014《C语言》模拟试题及答案(经典)一、单选题1. C语言中基本数据类型有。
CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。
AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。
AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。
BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。
DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。
DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是。
A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于C选项为求余运算符,所以本题正确答案为C选项。
C语言期末试题2(带答案)13-14-2 48课时C语言模拟练习总共42题共100分答卷编号:12311112222211333答题开始时间:2014-06-09 10:52:09答题结束时间:2014-06-09 10:52:13考生姓名:翟方正考试时间:00:00:04分钟总得分:0分评卷人:系统自动评卷评卷时间:2014-06-09 10:52:13一、单选题(共15题,共30分)1. 在C语言中,回车换行符是()(2分)A.'\n'B.'\t'C.'\v'D.'\b'标准答案:A考生答案:2. 以下选项中,不能作为合法常量的是()(2分)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0标准答案:B考生答案:3. 若有语句int *point,A=4;和point=&A下面均代表地址的一组选项是()(2分)A.A,point,*&AB.&*A,&A,*pointC.*&point,*point,&AD.&A,&*point ,point标准答案:D考生答案:4. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()(2分)A.x&&yB.x<=yC.x︱︱++y&&y-zD.!(x<y&& !z︱︱1)<="" p="">标准答案:D考生答案:5. 以下叙述中正确的是()(2分)A.C语言可以用来编写系统软件,也可以用来编写应用软件B.函数体不必用一对大括号{}括起来C.C程序的每一行只能写一条语句D.对一个C程序进行编译的过程可以发现注释中的拼写错误标准答案:A考生答案:6. 执行下面程序段后,c3中的值是()int c1=1,c2=2,c3;c3=c1/c2; (2分)A.0B.1/2C.0.5D.1标准答案:A7. 以下程序的输出结果是( )main(){ int a=12,b=12;printf("%d %d\n",--a,++b);} (2分)A.10 10B.12 12C.11 10D.11 13标准答案:D考生答案:8. 以下定义语句中,错误的是( ) (2分)A.int a[]={1,2};B.char *a[3];C.char s[10]="test";D.int n=5,a[n];标准答案:D考生答案:9. 以下程序的输出结果是()main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);} (2分)A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=b 标准答案:D考生答案:10. main( ){int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7&&p[i]%3){k =k+ p[i]; i++;}printf("%d\n", k);}执行后输出结果是()(2分)A.58B.53C.38D.24标准答案:C考生答案:11. 以下程序段的输出结果是()int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z); (2分)A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5考生答案:12. 若以下程序所生成的可执行文件名为file1.exe,则当在操作系统状态下输入下述命令行执行该程序时FILE1 CHINA BEIJING SHANGHAI程序的输出结果是()#includemain(int argc,char *argv[]){while (argc-->1){++argv;printf("%s ",*argv);}printf("\n");} (2分)A.CHINA BEIJING SHANGHAIB.FILE1 CHINA BEIJING SHANGHAIC.C B SD.F C B标准答案:A考生答案:13. 执行下述程序的输出结果是()#includeint power(int x,int y);main(){float a=2.6,b=3.4;int p;p=power((int)a,(int)b);printf("%d\n",p);}int power(int x,int y){int i,p=1;for (i=y;i>0;i--)p=p*x;return (p);} (2分)A.8B.9C.27D.81标准答案:A考生答案:14. 有以下程序main(){ int x[8]={8,7,6,5,0,0}, *s;s=x+3;printf("%d\n",s[2]);}A.随机值B.0C.5D.6标准答案:B考生答案:15. 执行下述程序的输出结果是()#includemain(){int aa[3][3]={{2},{4},{6}};int i,*p=&aa[0][0];for (i=0;i<2;i++){if (i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}printf("\n");} (2分)A.23B.26C.33D.36标准答案:A考生答案:二、判断题(共10题,共10分)1. C语言中,标识符的第一个字符可以是数字(1分) ( )标准答案:错误考生答案:2. "hello!"是合法的字符串常量表示形式(1分) ( )标准答案:正确考生答案:3. 若有定义int a[3][4];则a[1+1][0]是对数组a元素的正确引用形式(1分) ( )标准答案:正确考生答案:4. 在switch语句中使用continue语句与使用break语句作用相同(1分) ( )标准答案:错误考生答案:5. 用do-while语句构成循环时,只要while后的表达式为0时就结束循环(1分) ( )标准答案:正确考生答案:6. char a[]={0,1,2,3,4,5,6};不是正确的语句(1分) ( )标准答案:错误考生答案:7. 已经定义了指针变量p,且p指向变量a(即p=&a),则*p与a的含义相同。
C语言模拟试题一一—一一、填空题1、____________________________________________ C语言中基本的数据类型有:________________________________________2、C语言中普通整型变量的类型说明符为___________________ ,在内存中占____________ 字节,有符号普通整型的数据范围是3、____________________________________________ 整数-35在机内的补码表示为4、执行下列语句int a=8;a+=a-=a*a; 后,a的值是5、有如下语句:char A[ ]={ “lam a student ”};该字符串的长度是,N31=6、符号” a”和'a'的区别是7、所谓“指针”就是“ &”运算符的作用是“* ”运算符的作用是&有如下输入语句:sca nf( “ a=%d,b=%d,c=%d ,&a,&b,&c); 为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是___________________________ 。
二、选择题1、设整型变量a为5,使b不为2的表达式是(A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句定:C程序中的else总是与(A. 缩排位ifB. 在其之前未配对的if if-else 的二义性,) 组成配对关系置相同的C 语言规C. 在其之前未配对的最近的ifD. 同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf( “ %d %d\n ”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果那么A中第i个元素的地址为(A. P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i5、下列标识符中不是合法的标识符的是(A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是()int a=5;float x=3.14;a*=x*( ‘ E' - ‘ A );A的首地址为P,)。
C语言复习题(2014)一、选择题请把答案填写在下面的横线上,否则不能得分。
1. B2. D3. C4. D5. A6. B7. A8. D9. C 10. D11. C 21. A 31. C 41. B 51. A 12. B22. D32. A42. D52. B13. D23. B33. B43. C53. B14. B24. C34. A44. C54. A15. D25. C35. C45. D55. C16. C26. B36. D46. D56. A17. D27. B37. B47. D57. B18. D28. A38. D48. C58. A19. A29. D39. A49. D59. B20. C30. A40. C50. C60. C61. D 62. C 63. C1.下列关于C程序的说法错误的是(A)一个程序必须有一个main函数)。
B)函数首部后面必须有分号C)可以使用“/* */”来注释一段代码D)每个语句的末尾必须有分号2.下列关于C程序的说法错误的是(A)stdio.h是输入输出头文件)。
B)一个C语句必须以分号结束C)VC6.0中可以使用“//”来注释一行3.下列选项中,不能作为C语言标识符的是(D)#define命令不是预处理命令)。
A)_total B)p405 C)$123 D)abc 4.若有“float x=123.41; printf("%4.2f",x);”,则执行后的输出结果为()。
A)12.3 B)12.34 C)123.4 D)123.415.下列选项中,不能正确表示分式43的C语言表达式是()。
A)4/3 B)4/3.0 C)1.0*4/3 D)4/(float)3 6.若有定义“int x,y;”,则表达式“x=1,y=x+3/2”的值为()。
A)1 B)2 C)2.0 D)2.57.下列关于C程序的说法错误的是()。
A)C语言程序的基本组成单位是语句C)每条语句必须以分号结束B)C语言程序中一行可以写多条语句D)一个语句可以写在多行上8.以下关于标识符的说法错误的是()。
A)标识符由字母、数字和下划线组成C)首字符必须是字母或下划线B)标识符不能与系统的关键字同名D)不区分大小写,s和S是同一个变量9.表达式7%4+7/2的值是()。
A)4 B)4.5 C)6 D)6.510.已知变量a和b是int型,若有语句“scanf("a=%d,b=%d",&a,&b);”,使a的值是5,b的值是8,则正确的输入是()。
A)5 8↙B)5,8↙C)a=5 b=8↙D)a=5,b=8↙11.若有定义“int a; float b;”,执行“scanf("%3d%f",&a,&b);”语句时,从键盘输入:1234 567.8↙,则a和b的值分别是(A)1234和567.800000C)123和4.000000 )。
B)123和567.800000D)234和567.80000012.执行“printf ("%f%%",1.0/3);”语句后,正确的输出结果是()。
A )0.3B )0.333333%C )0.3%D )0.003%13. 若要定义符号常量 PI 代表 3.14,正确的预处理命令是()。
A )#define PI 3.14; C )define PI 3.14B )#define PI=3.14D )#define PI 3.14 14.15. 以下变量定义及初始化语句中正确的是(A )double a=0.5;b=1.5; C )int a=b=0;以下关于算法的描述中不正确的是()。
)。
B )char a=97,b='b'; D )float a=1,b=&a;A )算法中每一个步骤的含义都应该是确定的B )算法中每一个步骤都应该能有效执行C )正确的算法应在有限步骤内结束D )正确的算法都必须有输入和输出16. 当一个关系表达式成立时,该表达式的值为()。
A )-1B )0C )1D )不确定的非 0 值17. 关于 if 语句的说法正确的是()。
A )双分支语句中有可能两个分支都不执行B )if 多分支语句中不能没有最后的 elseC )if 语句中可以使用 continue 语句D )else 总是与前面最近的、没有与其它 else 配对的 if 配对 18. 要判断 x 是否满足表达式“-1≤x ≤1”,正确的 C 语言表达式是()。
A )-1<=x<=1B )-1≤x ≤1C )x>=-1||x<=1D )x>=-1&&x<=119. 若有程序段“int x=10; while(x!=0) x=x-1;”,执行完该程序段后 x 的值是( )。
A )0B )-1C )10D )9 20. 若有定义“float x,*p=&x;”,能正确输入一个值给 x 的语句是( )。
A )scanf("%f",x);B )scanf("%lf",&x);C )scanf("%f",p);D )scanf("%lf",&p); 21. 以下选项中,对变量的定义和初始化正确的是( )。
A )int a,*p=&a;B )int a,*p=*a;C )int a,p=&a;D )int a,*p=a;22. 逻辑运算符两侧运算对象的数据类型为(A )只能是 0 或者 1 C )只能是整型或字符型数据 )。
B )只能是 0 或非 0 正数 D )可以是任何类型的数据23. 在 c 语言中,执行完语句“for (i=1;i<=10;i++);”后,i 的值是()。
A )10B )11C )1D )不确定24. 定义了指向某个变量的指针,其含义是指针变量里存放的是该变量的( )。
A )值 B )名 C )地址 D )一个标志 25. 若有语句“int *pt, a=4; pt=&a;”,则下面均代表地址的一组选项是() A )a,ptB )&a,*ptC )&a,ptD )*pt,&pt26. 若有语句“float *p,m=3.14;”,想要建立如下图所示的存储结构,则正确的赋值语句是(pm)。
A )p=m;B )p=&m;C )*p=m;D )*p=&m;27. 有语句“int a=3, b=5, *p, *q; p=&a; q=&b;”,若要实现下图中所示的存储结构,则可以使用的赋值语句是()。
A )*p=*q;B )p=q;C )p=*q;D )*p=q;28. 以下程序段中有个语句是错误的,则下列说法正确的是()。
int *p, i; char *q, ch; p=&i; q=&ch; *p=4; p=q;A )p 和 q 的类型不一致,不能执行语句 p=qB )*p 中应该存放地址值,因此不能执行*p=4C )q 虽然指向了具体的存储单元,但是该单元中没有具体的值,所以不能执行 p=qD )q 没有指向具体的存储单元,所以不能执行 p=q 29. 若输入字符串:abcde<回车>,则以下 while 循环体将执行(while((ch=getchar( ))=='e')printf("*"); )次。
A )5B )4C )6D )030. 若 i ,j 已定义为 int 类型,则以下循环嵌套程序段中循环体一共要执行的次数是(for (i=5;i>0;i--)for (j=0;j<4;j++) { ... } )。
A )20B )25C )24D )3031. 关于函数的说法不正确的是(A )C 语言用函数实现模块的功能 )。
B )可根据需要自己来编写函数C )可以在一个函数内定义另一个函数D )一个函数可以没有参数32. C 程序中,若对函数类型未加显式说明,则函数类型默认为()。
A )intB )voidC )doubleD )int *33. 在函数内部定义的局部变量,若不对其存储类型进行说明,则默认为( )。
A )static B )auto C )externD )以上均不对34. 若函数 fun 被调用 3 次,则最后一次的输出结果为(void fun( ) {int a=1; a+=2;printf("a=%d\n",a); } )。
A )a=3B )a=5C )a=7D )a=935. 若函数 fun 被调用 3 次,则最后一次的输出结果为(void fun( ) {static int a=1; a+=2;)。
printf("a=%d\n",a);}A)a=3 B)a=5 C)a=7 D)a=9 36.如果在一个函数中的复合语句中定义了一个变量,则该变量()。
A)在该函数中有效C)在本程序范围内均有效37. C语言规定,函数返回值的类型是由(A)调用该函数时系统临时决定C)return语句中的表达式类型决定38. putchar函数可以向终端输出一个(A)整型变量表达式值C)字符串)。
)。
B)为非法变量D)只在该复合语句中有效B)在定义该函数时所指定的类型决定D)调用该函数时主调函数类型决定B)实型变量值D)字符或字符型变量值39.执行以下程序段的输出结果是(void fun(int x, int y))。
{ x=10; y=20; }void main( ){ int a=1, b=2;fun(a, b);printf("%d, %d\n", a,b);}A)1,2 B)10,20 C)10,2 D)1,2040.执行函数调用“fun('5')”得到的返回值为(int fun(char ch){ return(ch>='0'&&ch<='9'); })。
A)-1 B)0 C)1 D)241.关于局部变量的说法正确的是()。
A)有效范围是从定义开始到程序结束的所有函数B)有效范围是从定义开始到函数结束C)形参不是局部变量,而是全局变量D)复合语句中不能定义局部变量42.关于变量属性的说法错误的是()。
A)动态变量是在函数开始执行时分配内存单元,函数执行完毕后立即释放B)静态变量是在函数的执行过程中始终占用同一内存单元,程序执行结束时才释放C)全局变量都是静态变量,只有局部变量才有动态变量D)动态变量若不赋初值,系统会自动赋值为043.若有变量定义“int x=5,*p=&x;”,则执行函数调用“fun(p);”时,传递给fun函数的是()。