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

  • 格式:doc
  • 大小:163.50 KB
  • 文档页数:14

注意事项:1、本试卷共13 页,满分为100 分,考试时间为110 分钟。

2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。

二、阅读程序题答题处:(每空3分,共30分)三、程序改错题答题处:(每空2分,共12分)四、完善程序填空题答题处:(每空2分,共18分)一、单项单选题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,能够作为变量名使用的是【1】。

A) n_1 B) charC) x(2) D) 2_a2.若有定义语句char ch='\072'; 则变量ch 【2】。

A) 定义错误B) 包含1个字符C) 包含3个字符D) 包含4个字符3.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【3】。

char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);A) D,D B) 68,DC) D,68 D) 68,684.若有如下语句:int x; float y;scanf("k=%d,f=%f",&x,&y);则能够正确的为变量x输入5、为变量y输入3.2的方法是【4】。

说明:备选答案中的<CR>表示回车符A) 5 3.2 <CR> B) 5 <CR> 3.2 <CR>C) k=5,f=3.2 <CR> D) x=5,y=3.2 <CR>5.执行下列程序段后,输出结果是【5】。

int k=10; printf("%d,%o,%x",k,k,k);A) 12,a,10 B) 12,10,aC) 10,12,a D) 10,a,126.判断char 型变量ch 是否为小写字母的正确表达式是【6】。

A) ("a"<=ch) && (ch<="z") B) ("a"<=ch) || (ch<="z")C) ('a'<=ch) && (ch<='z') D) ('a'<=ch) || (ch<='z')7.下列表达式中,值为0的是【7】。

A) 3%4 B) 3<=4C) 3.0/4 D) 3/48.执行下列程序段后,变量a的值是【8】。

int a=2,b;a=(b=3,b+5,b++);A) 2 B) 3C) 4 D) 89.执行下列程序段后,输出结果是【9】。

int x=5,y=2;y*=x+7%4; printf("y=%d ",y);A) y=11 B) y=12C) y=13 D) y=1610.sizeof(double)是【10】。

A) 一个整型表达式B) 一个双精度表达式C) 一个函数调用D) 一个语法有错误的表达式11.执行下列程序段后,输出结果是【11】。

int a=5,b=4,c=3; printf("%d\n",a||b&c);A) 0 B) 1C) 5 D) 712.下列选项中,若所有变量均已正确说明且有初始值,那么错误的C语句是【12】。

A) ++k; B) a=b=c+2;C) k=a==b; D) a=b+c=2;13.执行下列程序段后,输出结果是【13】。

int x=3,y=4,z=5;if(x>y) z=y;y=x;x=z;printf("x=%d y=%d z=%d",x,y,z);A) x=5 y=3 z=5 B) x=4 y=3 z=4C) x=3 y=4 z=4 D) x=3 y=4 z=514.执行下列程序段后,输出结果是【14】。

int x=5,y;y=x>=5? x+2:x-2; printf("%d",y);A) 3 B) 5C) 7 D) 编译出错,没有输出结果15.在嵌套使用if语句时,C语言规定else总是【15】。

A) 和之前与其具有相同缩进位置的if配对B) 和之前与其最近且未配对的if配对C) 和之前与其最近且不带else的if配对D) 和之前的第一个if配对16.以下是if语句的基本形式:if (表达式) 语句其中“表达式”【16】。

A) 必须是逻辑表达式B) 必须是关系表达式C) 必须是逻辑表达式或关系表达式D) 可以是任意合法的表达式17.执行下列程序段后,输出结果是【17】。

int c=4;switch(c){case 2:case 4: c++;case 3: c++;break;case 5: c++;}printf("%d",c);A) 5 B) 6C) 7 D) 编译时有语法错误,没有输出结果18.执行下列程序段后,输出结果是【18】。

int k=5;while(--k)printf("%d",k-=3);A) 1 B) 2C) 4 D) 死循环19.执行下列程序段后,输出结果是【19】。

int i,k;for(i=0;i<4;i++,i++)for(k=1;k<3;k++)printf("*");A) * B) **C) **** D) ********20.若变量已正确定义,则以下能正确计算f=n!的程序段是【20】。

A) f=0;for(i=1;i<=n;i++) f*=i; B) f=1;for(i=n;i>1;i++) f*=i;C) f=1;for(i=1;i<=n;i++) f*=i; D) f=0;for(i=n;i>=2;i--) f*=i;21.有下面的程序段,则【21】。

int x=10;do{ x=x-1;} while(x=0);A) 循环体一次也不执行B) 循环体执行1次C) 循环体执行10次D) 是死循环22.下面程序段的执行结果是【22】。

int k;for(k=4;k<=10;k++){if(k%3==0) continue;printf("%d",k);}A) 45 B) 457810C) 69 D) 67891023.若有定义语句char x[]="abc", y[]={'a','b','c'}; 则下列叙述中正确的是【23】。

A) 数组x和数组y完全相同B) 数组x的元素个数和数组y的元素个数相同C) 数组x的元素大于数组y的元素个数D) 数组x的元素个数小于数组y的元素个数24.下列程序段的输出结果是【24】。

int i,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);A) 258 B) 369C) 741 D) 85225.现要定义一个char型的二维数组s[M][N],存放以下3个字符串"basic"、"C++"、"Java",则M和N的最适当的取值是【25】。

A) 2和6 B) 3和6C) 2和5 D) 3和526.下列程序段的输出结果是【26】。

char s[]="ab\ncd";printf("%d",strlen(s));A) 4 B) 5C) 6 D) 727.若有定义int a[][3]={1,2,3,4,5,6,7}; 则【27】。

A) 数组a第一维的大小是2 B) 数组a第一维的大小是3C) 数组a第一维的大小是4 D) 编译时有语法错误28.若有定义语句char s[5]="tree",t[7]="flower";则下列语句中,能正确地输出两个字符串的是【28】。

A) printf("%s%s",s[5],t[7]); B) printf("%c%c",s,t);C) puts(s);puts(t); D) gets(s);gets(t);29.若有定义语句char s1[10],s2[10];则函数调用strcmp(s1,s2)的功能是【29】。

A) 将字符串s2连接到s1末尾B) 将字符串s1连接到s2末尾C) 测试字符串s1中是否包含s2 D) 比较两个字符串的大小30.若有定义语句float a=3.1,b,*p=&b;则对赋值语句*p=a; 和p=&a;的准确解释是【30】。

A) 两个语句都是将变量a的值赋予变量bB) *p=a是使指针p指向变量a;p=&a是将变量a的值赋予变量bC) *p=a是将变量a的值赋予变量b;p=&a是使指针p指向变量aD) 两个语句都是使指针p指向变量a31.下列程序段的输出结果是【31】。

char *s[]={"East","West","South","North"};char **p=s;printf("%d",p[0][1]);A) 字符W的ASCII码值B) 字符WC) 字符a 的ASCII码值D) 字符a32.下列程序段的输出结果是【32】。

int a[]={1,3,5,7,9}, s=0, k, *p;p=&a[1];for(k=0;k<2;k++) s+=*(p+k);printf("%d",s);A) 8 B) 4C) 3 D) 133.若有定义语句double b[5][4], (*p)[4]=b, *q=b[1];则不能表示数组元素b[2][3]的是是【33】。

A) *(q+7) B) *(p+2)+3C) *(b[2]+3) D) (*(p+2))[3]34.若有如下函数定义int fun(int *p){ ……return *p; }则函数fun的返回值是是【34】。

A) 一个整数B) 一个整型指针C) 形参p的值D) 形参p的地址35.数组名作函数的参数时,实参数组传递给形参数组的是【35】。

A) 数组的首地址B) 数组中全部元素的值C) 数组中元素的个数D) 数组中第一个元素的值36.函数fun的定义形式如下:void fun(char ch, double x){……}则以下对函数fun的调用语句中,正确的是【36】。