09年桂林电子科技大学C语言试卷A__有答案

合集下载

09年C语言试题及答案

09年C语言试题及答案

09年C语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的源代码不能直接在计算机上运行C. C语言支持结构化编程D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述中,正确的是:A. 指针可以存储地址B. 指针可以存储数据C. 指针不能存储地址D. 指针不能存储数据答案:A4. 在C语言中,用于定义一个函数的关键字是:A. intB. voidC. returnD. function答案:A5. 下列关于数组的描述中,错误的是:A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时确定D. 数组的大小可以在运行时改变答案:D6. 在C语言中,用于控制循环的关键字是:A. ifB. whileC. forD. switch答案:C7. 下列关于文件操作的描述中,错误的是:A. 文件操作需要使用文件指针B. 文件操作需要包含stdio.h头文件C. 文件操作不需要使用文件指针D. 文件操作需要使用fclose函数关闭文件答案:C8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A9. 下列关于函数参数的描述中,错误的是:A. 函数参数可以是常量B. 函数参数可以是变量C. 函数参数可以是数组D. 函数参数不可以是指针答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。

答案:int2. 在C语言中,用于定义一个宏的预处理命令是________。

桂林电子科技大学C语言精选样卷及答案

桂林电子科技大学C语言精选样卷及答案

桂林电子科技大学C语言精选样卷总分:【100分】考试时间:【90分钟】一、单项选择题(共20题,每题2分,共计40分)()1、在下列选项中,不正确的表达式是________。

A、a>bB、c--, ++b, a+=1C、a=c+b>n-m=kD、p++()2、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。

A、++x,y=x--B、x+l=yC、x=x+10=x+yD、double(x)/10()3、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",a,b);}该程序的输出结果是( )A、2,1B、1,1C、1,0D、2,2()4、下列选项中均属于c语言合法的标识符是________。

A、Int#subbreakB、_3abLongC、3aprintfa_bD、WORDautoinclude()5、下列程序的运行结果是________。

void fun(int*a,int*b){int *k;k=a;a=b;b=k;}main(){int a=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}A、63B、36C、编译出错D、0 0()6、下列程序段的输出是____。

int c[]={1, 3, 5};int *k=c+1;printf("%d", *++k);A、3B、4C、5D、6()7、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。

for(k=0;k<3;k++) printf("%d",a[k][k]);A、7 5 3B、9 5 1D、7 4 1()8、在c 语言中,退格符是________。

2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列 B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装 B)自顶向下C)模块化 D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图 D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S和T如下:T其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned(13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf("请输入2个数:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20 B)-10 C)0 D)10(16)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c) k=1;else k=0; else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;(20)有以下程序#include <stdio.h>main(){ char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a' &&s[i]<='z') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)2 C)3 D)5(21)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第3页(共9页)printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';(23)有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf("%d",p);}main(){ int a=1;fun(a); printf("%d\n",a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程序#include <stdio.h>#include <string.h>main(){ char str[ ][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");}程序运行后的输出结果是A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30)有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第5页(共9页)程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char *a,char *b){ while((*b=*a)!='\0') {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun;C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7 B)8 C)9 D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]="string";c=str; B)scanf("%s",c);C)c=getchar(); D)*c="string";(38)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39)若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

C语言程序设计期中试卷(含答案)

C语言程序设计期中试卷(含答案)

桂林电子科技大学信息科技学院试卷2008-2009 学年第 2 学期 课号 课程名称:C 语言程序设计(闭卷) 适用班级(或年级、专业) 通信、电子(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷说明:(1) 第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。

(2) 答本卷的题目时,要在标准答题纸上编写对应的栏目中,用铅笔在正确答案图黑,在试题上直接勾划者不得分。

(3) 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。

第一部分:基础知识(20题,共40分)1 以下叙述中正确的是A )C 语言的源程序不必通过编译就可以直接运行B )C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C )C 源程序经编译形成的二进制代码可以直接运行D )C 语言中的函数不可以单独进行编译 2 以下选项中合法的用户标识符是A) long B) _2Test C) 3Dmax D) A.dat3 已知大写字母A 的ASCII 码值是65,小写字母a 的ASCII 码是97,则用八进制表示的字符常量'\101'是A) 字符A B) 字符a C) 字符e D) 非法的常量 4 以下非法的赋值语句是A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 5 设a 和b 均为double 型变量,且a=5.5、b=2.5,则表达式(int)a+b/b 的值是 A) 6.500000 B) 6 C) 5.500000 D) 6.0000006 已知i 、j 、k 为int 型变量,若从键盘输入:1,2,3<回车>,使i 的值为1、j 的值为2、k 的值为3,以下选项中正确的输入语句是A) scanf("%2d%2d%2d ",&i,&j,&k); B) scanf("%d %d %d ",&i,&j,&k); C) scanf("%d,%d,%d ",&i,&j,&k); D) scanf("i=%d,j=%d,k=%d ",&i,&j,&k);7设有定义:float a=2,b=4,h=3;,以下C 语言表达式与代数式 计算结果不相符的是A) (a+b) *h/2 B) (1/2)*(a+b)*h C) (a+b)*h*1/2 D) h/2*(a+b)h b a )(218与数学式子123-x nx对应的C 语言表达式是A) 3*x^n(2*x-1) B) 3*x**n(2*x-1)C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1)9 设有定义:long x=-123456L ;,则以下能够正确输出变量x 值的语句是A) printf("x=%d\n ",x); B) printf("x=%1d\n ",x); C) printf("x=%8dL\n ",x); D) printf("x=%LD\n ",x); 10 若有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k); printf("%d,%d\n ",m,i); }执行后的输出结果是A) 8,6 B) 8,3 C) 6,4 D) 7,4 11 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A) 6 B) 0 C) 2 D) 1 12 以下选项中,与k=n++完全等价的表达式是A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 13 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char 型变量和int 型变量,但不能是float 型变量 C) 它们的运算对象可以是int 型变量,但不能是double 型变量和float 型变量 D) 它们的运算对象可以是char 型变量、int 型变量和float 型变量 14 若有以下程序段(n 所赋的是八进制数)int m=32767,n=032767; printf("%d,%o\n ",m,n); 执行后输出结果是A) 32767,32767 B) 32767,032767 C) 32767,77777 D) 32767,077777 15 C 语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构 B) if 、switch 、break C) for 、while 、do-while D) if 、for 、continue16 有一函数,0x 0x 0x 101y <=>-=⎪⎩⎪⎨⎧,以下程序段中不能根据x值正确计算出y值的是A) if(x>0) y=1; B) y=0;else if(x==0) y=0; if(x>0) y=1;else y=-1; else if(x<0) y=-1;C) y=0; D) if(x>=0)if(x>=0) if(x>0) y=1; if(x>0) y=1; else y=0; else y=-1; else y=-1;int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,018 有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是A) 0,0 B) 0,1 C) 1,0 D) 1,119 有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A) 11 12<回车> B) 11, 12<回车> C) 11,12<回车> D) 11,<回车>12<回车>20 设有如下程序段:int x=2002,y=2003;printf("%d\n",(x,y));则以下叙述中正确的是A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为2002D) 输出值为2003二第二部分:简单程序(12题,21-26题每题2分,27-32题每题3分,共30分)21 有以下程序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) 011122 B) 012 C) 012020 D) 120{ int i=1,j=1,k=2;if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出结果是A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,323 有以下程序main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";printf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确 B) b='\xbc';语句不正确C) d="\017";语句不正确 D) a='\';和c='\0xab';语句都不正确24 以下程序段中与语句k=a>b?(b>c?1:0):0; 功能等价的是A) if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1;else k=0; else k=0;C) if(a<=b) k=0; D) if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;25 有以下程序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);elseprintf("%d\n",d+2);}执行后输出结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果26 有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j); }执行后输出结果是A) 9,2 B) 10,2 C) 9,1 D) 10,1{ int i=0,s=0;do{ if(i%2) { i++; continue; }i++;s+=i;} while(i<7);printf("%d\n",s);}执行后输出结果是A) 16 B) 12 C) 28 D) 2128 有以下程序main(){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-529 有以下程序main(){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);}程序执行后的输出结果是A) 自然数1~9的累加和 B) 自然数1~10的累加和C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和30 有以下程序main(){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=431 要求以下程序的功能是计算:10131211++++= s main (){ int n; float s; s=1.0;for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n ",s); }程序运行后输出结果错误,导致错误结果的程序行是A) s=1.0; B) for(n=10;n>1;n--) C) s=s+1/n; D) printf("%6.4f/n ",s); 32 有以下程序段int n=0,p;do { scanf("%d ",&p); n++; } while(p!=12345 && n<3); 此处do —while 循环的结束条件是A) p 的值不等于12345并且n 的值小于3 B) p 的值等于12345并且n 的值大于等于3 C) p 的值不等于12345或者n 的值小于3 D) p 的值等于12345或者n 的值大于等于3第二卷说明:(1) 第二卷含5大题,均属填空题,总共有10个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C 语言程序。

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案

2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。

09级C语言期中试卷

09级C语言期中试卷

桂林电子科技大学信息科技学院09级C程序设计期中测试卷一、选择题(20题,共40分)1.一个C程序总是从开始执行。

A. 程序的第一个语句B. 主函数C. 子程序D. 主程序2.下列标识符中,合法的用户标识符为。

A. P#AdB. 12aC. charD. _int3.下面4组常量,合法的一组C语言常量是。

A. 0B. 10C. 0.01D. 0.10x10 10L "\"" 3E+02E+9 E1 "\' ""\""'a'"a"'t''tt'''''\0''\t' 0124.执行下列程序片段时输出结果是。

unsigned int a=65535;printf(“%d”,a);A)65535 B)-1 C)-32767 D)15.若有定义(说明)int a[3][4]; 则对数组a的元素的引用非法的是。

A. a[2][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]6.以下不能对二维数组a进行正确初始化的语句是。

A. int a[2][3] ={0};B. int a[][3] ={{1,2},{0}};C. int a[2][3] ={{1,2},{3,4},{5,6}};D. int a[][3] ={1,2,3,4,5,6};7.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是。

int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020AB↙B)10 20↙AB↙C)10 20 AB↙D)10 20AB↙8.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷B卷及答案

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷B卷及答案

桂林电子科技大学试卷2010~2011 学年第1 学期课号101794,101798,101800,101801,101802,101803,101804课程名称C语言程序设计(B卷,闭卷)适用班级(或年级、专业)2010级考试时间120 分钟班级学号姓名题号一二三四五六七八九十成绩满分30 20 30 20 100 得分评卷人一、选择题(共30分,每小题2分)1、一个C语言程序中,以下说法中正确的是 C 。

A)main函数必须出现在所有函数之前B)main函数必须出现在所有函数之后C)main函数可以放在任何位置D)main函数必须放在固定位置2、在C语言中,下列合法的变量名是 D 。

A) b.cat B) #p12 C) 3D64 D) p_12 3、为表示x≥y≥z,须用C语言表达式的是 A 。

A)(x>=y)&&(y>=z) B) (x>=y)AND(y>=x)C) x>=y>=z D) (x>=y)&(y>=z)4、有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 D 。

A)132<回车> B)1, 3, 2<回车>C)a=1 b=3 c=2<回车> D)a=1, b=3, c=2<回车>5、以下程序的输出结果是 A 。

A) 3 B) 4 C) 0 D) 1 void main ( ){ int x = 1 , y = - 1 , z = 3 ;if ( x < y )if ( y < 0 ) z = 0 ;else z = z + 1 ;printf ( " %d \n ", z );}6、对于while语句,错误的说法是 B 。

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷A卷及答案

【随米文库】桂林电子科技大学2010-2011学年第一学期《C语言程序设计》试卷A卷及答案

桂林电子科技大学试卷2010-2011 学年第 1 学期课号101794,101798,101800,101801,101802,101803,101804课程名称C语言程序设计(A 卷,闭卷)适用班级(或年级、专业)2010级一.选择题(每题2分,共30分)1.设x=3,y=2,则表达式x*=y+8的值为__ C ___。

(原式:x=x*(y+8))A. 3B. 2C. 30D. 102.C语言中逻辑值“真”用 D 表示。

A. trueB.大于0的数C.非0整数D.非0的数3. 有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 D 。

A. 132<回车>B. 1, 3, 2<回车>C. a=1 b=3 c=2<回车>D. a=1, b=3, c=2<回车>4. 若二维数组a有m列,则在a[ i ][ j ]之前的元素个数为 B 。

A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+15. 判断char型变量ch是否为大写字母的正确表达式是 C 。

A. 'A'<=ch<='Z'B. (ch>='A')&(ch<='Z')C. (ch>='A')&&(ch<='Z')D. ('A'<=ch)AND('Z'>=ch)6. 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与___ B 配对。

A. 缩排位置相同的ifB. 其之前最近的ifC. 其之后最近的ifD. 同一行上的if (参见课本62页)7. 结构化程序设计使用的基本程序控制结构为____ C ____。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

桂林电子科技大学试卷2009-2010 学年第 2 学期课号0921306等课程名称C语言程序设计A (A卷; 闭卷)适用班级(或年级、专业)7院09级考试时间120 分钟班级学号姓名第一部分:基础知识(20题,共20分)1、表达式18/4*2/8值的数据类型为()A)int B)float C)double D)不确定2、在C语言中,int, char和short int三种类型变量所占用的内存大小是()。

A)均为2个字节 B)由用户自己定义 C)由所用机器的字长决定 D)是任意的3、C语言中函数返回值的类型是()A)return语句中的表达式类型 B)调用函数的类型C)总是int型 D)定义函数时所指定的函数类型4、凡是在函数中未指定存储类别的变量,其隐含的存储类别是()A)自动B)静态C)外部D)寄存器5、以下不正确的描述是()A)break语句只能用于循环语句和switch语句B)在switch语句中,break语句的作用也可用continue语句来替代C)在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行D)在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环6、以下说法正确的是()A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf (“%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scan f(“%f",&f);7、己知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=55;double x=1.42,y=5.2;则以下符合c语言语法的表达式是()A)a+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)8、已知ch是字符型变量,下面不正确的赋值语句是()A)ch=‟a+b‟; B) ch=‟\0‟; C)ch=‟7‟+‟9‟; D)ch=5+99、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是______。

A)132<回车>B)1,3,2<回车>C)a=l b=3c=2<回车>D)a=1,b=3,c=2<回车>10、逻辑运算符两侧运算对象的数据类型()A)只能是0或lB)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据11、一个c程序的执行是从()A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结柬C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束12、以下程序段()x=-1;do{x=x*x;}while(!x);A)是死循环 B)循环执行二次C)循环执行一次 D)有语法错误13、以下正确的叙述是()A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定B)C语言允许main函数带形参,形参名只能是argc和argvC)当main函数带有形参时,传给形参的值只能从命令行中得到D)若有说明:main(int argc,char *argv),则形参argc的值必须大于114、若有宏定义 #define mod(x,y) x%y ,则执行以下程序段后,输出为()int z,a=15,b=100;z=mod(b,a);printf(“%d/n”,z++);A)11 B)10 C)6 D)宏定义不合法15、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其正确的解释是_()main(){int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p);……}A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是—个指针变量16、若有说明语句: char s1[4]=”12”; char *ptr;则执行下列语句后输出为()ptr=s1;printf(“%c/n”,*(ptr+1));A)字符…2‟ B)整数2 C)字符串“12” D)字符…1‟17、若有以下语句int x[]={2,4,6,8,10,12},*ptr;ptr=x;则对数组元素的正确引用为()A)x B)x[6] C)*(--ptr) D 、 *(++ptr)18、若有说明语句:int i,x[3][4];则不能实现将x[1][1]的值赋给变量i的语句是()A)i=*(*(x+1)+1) B)i=*(*(x+1)) C)i=x[1][1] D)i=*(x[1]+1)19、若用数组名作为函数调用的实参,传递给形参的是____。

A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数20、若有定义:int a[5];则a数组中首元素的地址可以表示为()A)&a B)a+l C)a D)&a[1]第二题:简单程序(15题,共45分)21、执行以下语句后b的值为()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A)5 B)0 C)6 D)122、运行下面的程序,其输出是()main(){int i=1;while(i<19)if(i++%5!=3) continue;else printf(“%4d”,i);printf(“/n”);}A)2 5 7 9 11 13 15 17 B)3 6 9 12 15 18C)4 9 14 19 D)3 8 13 17 1923、运行下面的程序后,其正确的输出是()main(){static int a[5]={7,2,8,4,5};static int *pa[5]={&a[0], &a[2], &a[1], &a[3], &a[4]};int **p,i;p=pa;for(i=0;i<5;i++){printf(“%d/t”,**p+2);p++;}printf(“/n”);}A)9 4 10 6 7 B)7 2 8 4 5C)7 4 10 4 5 D)9 10 4 6 724、下面程序运行后,其输出是()main(){int i;int n=2;while(++n<20){i=1;while(++i<n){if(n%i= =0)break;if(i= =n-1)printf(“%d/t”,n);}printf(“/n”);}}A)2 5 7 9 13 17 19 B)3 5 7 11 13 17 19C)2 3 5 7 11 13 17 19 D)3 5 7 11 13 17 2025、下面程序运行后,其输出是()main(){int i,j,k; int func();i=1,j=2,k=3;printf(“%d/n”,func((j+=k, j++),(i,i++,++i)));}int func(int x,int y){int z;z=x%y;return(z);}A)2 B)0 C)1 D)326、下面程序运行后,其输出是()int x,y;one(){int a,b;a=25,b=10;x=a-b;y=a+b;}main(){int a,b;a=9,b=5;x=a+b;y=a-b;one();printf(“%d,%d/n”,x,y);}A)14,4 B)14,35 C)15,35 D)15,427、下面程序运行后,其输出是()#include <stdio.h>void printd(int i);main(){int n=123;printd(n);}void printd(int n){int i;if(n<0){n=-n;putchar(…-…);}putchar(n%10+‟0‟);if((i=n/10)!=0)printd(i);}A)123 B)321 C)3 D)128、下面程序运行后,其输出是()struct sample{int a,b;char *ch;};void f1(struct sample parm);main(){struct sample arg;arg.a=1000;arg.b=100;arg.ch=”abcd”;f1(arg);}void f1(struct sample parm){ parm.a+=parm.b;parm.ch[2]=‟x‟;printf(“%d/n”,parm.a);printf(“%s/n”,parm.ch);}A)1000 B)1100 C)1100 D)100Abcd abcd abxd abcd 29、下面程序运行后,其输出是()main(){static char s[30]=”abcdefg”;static char t[]=”abcd”;int i,j;i=0;while(s[i]!=‟/0‟)i++;j=0;while(t[j]!=‟/0‟){s[i+j]=t[j];j++;}s[i+j]=‟/0‟;printf(“%s/n”,s);}A)abcdabcdefg B)abcdefg C)abcd D)abcdefgabcd30、下面程序运行后,其输出是()main(){ int a[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i+j;for(i=1;i<4;i++)for(j=i+1;j<4;j++){ k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}for(i=0;i<4;i++){printf(“/n”);for(j=0;j<4;j++)printf(“%4d”,a[i][j]);}}A)0 1 2 3 B)0 1 2 3 C)0 1 2 3 D)3 2 1 01 2 3 4 1 2 5 4 1 2 4 2 4 3 2 12 3 4 5 2 3 4 5 2 3 5 3 5 4 3 23 4 5 6 3 4 5 6 3 4 6 4 6 5 4 3 31、运行下面的程序,其输出是()main(){ int a[]={4,2, 6,8,10},y=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf(“%d/n”,y);}A)17 B)18 C)19 D)2032、运行下面程序,从键盘输入四个字符xyz#,其输出是()#include "stdio.h"main(){ void recursion();recursion();}void recursion(){char c;c=getchar();putchar(c);if(c!=‟#‟)recursion();}A)xyz# B)xyz#xyz# C)xyz##zyx D)xyzxyz33、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为()if ( a < b )if( c < d)x = 1;else if (a < c )if ( b < d )x = 2;elsex = 3;elsex = 6;else x = 7;供选择的答案是:A) 1 B) 2 C) 3D)634、有以下程序:main(int argc , char *argv[ ] ){int i;if ( argc <= 0 ) return ;for( i=1; i<argc ; i++) printf(“%c”, *argv[ i] );}经编译链接后生成的可执行文件是test.ext,若运行时输入以下带参数的命令行:test good luck执行后输出结果是()A)goodluck B)goo C)luc D)gl35、以下程序struct tree{ int x ;char *s;}t;fun(struct tree t) {t.x = 10;t.s = “here”;}main( ) {t.x = 1;t.x = “there”;fun ( t );printf(“%d, %s”, t.x , t.s );}执行后输出结果是()A)10, here B)1, there C)1,here D)10, there第三题:程序填空题在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。

相关文档
最新文档