C语言程序设计试卷3(含答案).doc_第1页
C语言程序设计试卷3(含答案).doc_第2页
C语言程序设计试卷3(含答案).doc_第3页
C语言程序设计试卷3(含答案).doc_第4页
C语言程序设计试卷3(含答案).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

注意事项:1、本试卷共 13 页,满分为 100 分,考试时间为 110 分钟。 2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。题 目一二三四总 分分数核对得 分阅卷人二、阅读程序题答题处: (每空3分,共30分)1题【41】2题【42】3题【43】4题【44】5题【45】6题【46】7题【47】8题【48】9题【49】10题【50】三、程序改错题答题处:(每空2分,共12分)1题【51】【52】【53】2题【54】【55】【56】四、完善程序填空题答题处:(每空2分,共18分)1题【57】【58】【59】2题【60】【61】【62】3题【63】【64】【65】一、单项单选题:(每题 1 分,共 40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1以下4组标识符中,能作为变量名使用的是 【1】 。A) age, struct, s1 B) 2A, b_3, main C) ELSE, a2, m123 D) _abc, INT, abcd2已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是 【2】 。A) putchar(A+1); B) putchar(b-32); C) putchar(98-32); D) putchar(B);3能正确表示的C语言表达式是 【3】 。A) (-b+sqrt(b*b-4*a*c)/(2*a)B) -b+sqrt(b*b-4*a*c)/(2*a)C) (-b+sqrt(b*b-4*a*c)/2*a D) -b+sqrt(b*b-4*a*c)/2*a4下列程序段的输出结果是 【4】 。float x;x=1+1%3*5/2;printf(%f,x);A) 3.000000 B) 3 C) 3.500000 D) 85下列程序段的输出结果是 【5】 。int m=027;printf(%dn,m-);A) 27 B) 26 C) 23 D) 226已知变量a=4,b=5,c=6,则表达式 c & a | b的值是 【6】 。A) 7 B) 1 C) 0 D) 67设 int x=10; x+=x%= (-6)+4; 则x= 【7】 。A) 0 B) 16 C) 18 D) 108设int a=1,b=2,c=3,d=4,z;则表达式 (ab)? (z=c) : (z=d) 的值是 【8】 。 A) 3 B) 0 C) 4 D) 19下列程序段的输出结果是 【9】 。int a=5;if( a+ 5 ) printf(%dn, a );else printf(%dn, a- ); A) 7 B) 6C) 5 D) 410运行下列程序段,输入AaBbDd并以回车键结束输入,则输出结果是 【10】 。char ch; int s=0; while(ch=getchar()!=n) switch(ch) case A: s+; case B: s+; break; case D: s+; default: s+; printf(%dn,s); A) 6 B) 8C) 10 D) 1211下列程序段的输出结果是 【11】 。int i,s=0;for(i=1;i=0;i-=2) s=s*10+ai;printf(%dn,s); A) 4321 B) 42C) 1234 D) 1318设有如下数组定义:char str6;则下列程序段中,不能正确的为str数组赋值的是 【18】 。 A) strcpy(str,ABCD) B) gets(str); C) for(i=0;i6;i+) scanf(%c,stri); D) scanf(%s,str);19下列程序段的输出结果是 【19】 。int i=0;char s110=1234,s210=567;strcat(s1,s2);while(s2i+!=0) s2i=s1i;puts(s2); A) 123 B) 123 567C) 5234567 D) 52320下面程序段的输出结果是 【20】 。int a=1,2,3,4,5,6,7,*p;p=a;*(p+3)+=2;printf (%d %dn, *p,*p+3);A) 6 7 B) 1 5C) 1 6D) 1 421能为指针变量p正确赋值的是 【21】 。A) int a,*p=a; B) int a,*p=&a;C) int a,*p;D) int a,*p; *p=a; *p=&a;22下面程序段的输出结果是 【22】 。int a23=1,3,5,11,13,15,*p2;p0=a0; p1=a1;printf (%dn, *(p1+1); A) 13 B) 12 C) 14 D) 523假设下面程序段中第一个printf函数的输出结果是200,则第二个printf函数的的输出结果是 【23】 。float b15,*p=b;printf(%xn,p);printf(%xn,p+13); A) 234 B) 20d C) 252 D) 21a24下面程序段的输出结果是 【24】 。char *s=East,West,South,North;char *p=s;printf(%d,p01);A) 字符W的ASCII码值 B) 字符W C) 字符a 的ASCII码值 D) 字符a25已知:0i10,则 【25】 是对数组元素的错误引用。int a=1,2,3,4,5,6,7,8,9,0,*p,i;p=a;【31】A) p+iB) ap-aC) *(a+i)D) *(&ai)26已知一个函数定义为: void func( ) 则void的含义是 【26】 。 A) 执行该函数后没有返回值 B) 执行该函数后不返回 C) 该函数可以返回任意类型的数据 D) 该函数返回整型数据27定义函数时,如果省略函数的存储类型和数据类型,则默认的存储类型和数据类型分别是 【27】 。A) auto和int B) extern和int C) auto和viod D) extern和void28下面程序的运行结果为 【28】 。int f(int a)int b=0; static c=3; b+; c+; return(a+b+c);main() int i; for(i=0; i3; i+) printf(%d, f(i) ); A) 567 B) 5 6 7 C) 579 D) 5 7 929下面程序的运行结果为 【29】 。int func(int a, int b) return a+b; main() int x=2, y=5, z=8, r; r=func(func(x,y),z); printf(%dn,r);A) 7 B) 8 C) 13 D) 15 30C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方法是 【30】 。A) 形参与实参的结合 B) 函数返回值 C) 同名的局部变量 D) 全局变量 31C语言规定,函数返回值的类型是由 【31】 。A) return语句的表达式类型所决定B) 调用该函数时的主调函数类型所决定C) 调用该函数时系统临时决定D) 在定义该函数时所指定的函数类型所决定32若有以下的说明,则对初值中整数2的引用方式为 【32】 。 static struct char ch; int i; double x; arr23= a,1,3.45, b,2,7.98, c,3,1.93;A) arr01.ch B) arr01.i C) arr00.i D) arr12.i33下列关于数组和结构的叙述中正确的是 【33】 。A) 构成数组的各个元素和构成结构体的各个成员都必须具有相同的数据类型B) 构成数组的各个元素和构成结构体的各个成员均占用一段连续的内存C) 构成数组的各个元素类型必须相同,但所占内存不一定连续 D) 构成结构体的各个成员类型可以不同,且所占内存也不一定连续34下面程序的运行结果为 【34】 。main() union abc int a3; char c; ; printf(%d,sizeof(union abc);A) 1 B)4 C) 12 D) 13 35下面程序的运行结果为 【35】 。main() union abc int a; char c2; u; u.c0=3; u.c1=5; u.a=7; printf(%d %dn, u.c0, u. c1);A) 3 5 B) 3 7 C) 7 5 D) 7 036下面程序的运行结果为 【36】 。main() enum colorred,green,yellow=5,white,black; printf(%d %d %d %d %dn,red,green,yellow,white,black);A) 0 1 2 3 4 B) 0 1 5 3 4 C) 3 4 5 6 7 D) 0 1 5 6 737下列语句中,能正确打开A盘STU文件夹下t1.txt文件的是 【37】 。A) fp=fopen(A:STUt1.txt, r); B) fp=fopen(A:STUt1.txt, r);C) fp=fopen(A:STUt1.txt, r); D) fp=fopen(A:STUt1.txt, r);38设fp是指向文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 【38】 。A) 0 B) 0 C) NULLD) 非零值39C语言中文件的存取方式 【39】 。 A)只能顺序存取,不能随机存取 B)只能随机存取,不能顺序存取 C)可以顺序存取,也可随机存取 D)只能从文件的开头进行存取40下列程序的运行结果为 【40】 。 #define PT 3.5 #define S(x) PT*x*x main() int a=1,b=2; printf(%4.1fn, S(a+b); A) 14.0 B) 31.5 C) 7.5 D) 10.5二、阅读程序题:(每题 3 分,共 30 分)(说明:请将正确答案按照题号填写在“填空题答题处”)1下列程序的运行结果是 【41】 。main() int a=353; char b=a; printf(%d,b);2下列程序的运行结果是 【42】 。main() int a=2,b=3,c=4,d=5,x=0; if(ab) if (!c) x=1; else x=2; else if (d) x=3; else x=4; printf(x=%d,x);3下列程序的运行结果是 【43】 。main() int m=24,n=9,t; t=m%n; while(t) m=n,n=t,t=m%n; printf(%d,n);4下列程序的运行结果是_ 【44】 。#include main() int c=5; printf(%dn,(c+=c+,c+8,+c); 5下列程序的运行结果是_ 【45】 。main() char a36=Sun,Earth,Moon; int i,j,n3; for(i=0;i3;i+) for(j=0;j6;j+) if (aij=0) ni=j; break; printf(%s=%d ,ai,ni); 6下列程序的运行结果是 【46】 。#include main() int a34=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a0; printf(%d,%dn, *(p+4), *a1);7下列程序的运行结果是 【47】 。void f(int *a, int b) *a=*a+10; b=b+100; main() int x=5, y=8; f(&x, y); printf(main:x=%d y=%dn, x, y); 8下列程序的运行结果是 【48】 。int fun(int n) if (n=0) return 0; else return n+fun(n-1);main() printf(%dn, fun(5) );9下列程序的运行结果是 【49】 。#define MAX 3int aMAX;void fun1() int k,t=0; for (k=0; kMAX; k+, t+) ak= t+t ; void fun2(int b) int k; fun1(); for (k=0; kMAX; k+) printf(%d, *(b+k); main() fun2(a); 10下列程序的运行结果是 【50】 。#include struct sample int a,b; char ch5; ;void f1(struct sample *);main() struct sample arg; arg.a=1000; arg.b=100; strcpy(arg.ch , abcd); f1(&arg); printf(main: %d %sn, arg.a, arg.ch);void f1(struct sample *parm) parm-a = parm-a + parm-b; parm-ch2 = x; 三、程序改错题:(每题 6 分,共 12 分)(说明:请将”found error”行的错误更正, 并将正确答案按照题号填写在“程序改错题答题处”,不可增加语句)1下面程序的功能是:利用公式 ,从键盘输入x,求ex的近似值 ,直到最后一项的绝对值小于10-6为止。请填空完善程序#include main() float t, x, e; int i; scanf(%f,&x); t=1, i=1, e = x ; /* found error 【51】 */ do t= x*x / i ; /* found error 【52】 */ e += t; i+; while(abs(t)1e-6); /* found error 【53】 */ printf(e=%fn,e);2假设数组a的各元素已经按从小到大的顺序排序,下面程序的功能是利用二分查找算法在数组a中查找是否有一个元素的值是b。如果存在,显示该元素的下标,否则显示-1。请填空完善程序。#define N 10main() int aN=2,5,7,9,12,15,16,19,23,26, b, low, high, mid; scanf(%d, &b); low=0; high=N-1; mid=(low+high)/2; while(low amid ) /* found error 【55】 */ high= mid -1; else low= mid +1; mid=(low+high)/2 ; if ( low high ) /* found error 【56】 */ printf(%dn, mid); else printf(%dn, -1);四、完善程序填空题:(每空2分,共18分)(说明:请将正确答案按照题号填写在“程序改错题答题处”)1下面程序的功能是:求给定四个字符串中最大的一个,并输出。请填空完善程序。#include #include main()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论