天津城建大学C语言题库附答案_第1页
天津城建大学C语言题库附答案_第2页
天津城建大学C语言题库附答案_第3页
已阅读5页,还剩2098页未读 继续免费阅读

下载本文档

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

文档简介

1、天津城建大学C语言题库附答案一、单项选择 共26题 (共计50分)第1题 (1.0分) 题号:2686设int a=12,则执行完语句a+=a-=a*a后,a的值是_。A:552B:264C:144D:-264答案:D第2题 (1.0分) 题号:2667属于合法的C语言长整型常量的是()A:0LB:(long)123456C:2e10D:5876273000答案:A第3题 (1.0分) 题号:2661下面程序的输出结果是( )。#include void main() int m=5; if(m+5) printf(%d n,m); else printf(%dn,m-); A:7B:6C:5

2、D:4答案:B第4题 (1.0分) 题号:2748设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是_。A:a&bB:a=bC:a|+c&b-cD:!(ab)&(n=cd)运算后,n的值为_。A:0B:1C:2D:3答案:C第6题 (1.0分) 题号:2739有以下程序main() char a,b,c,d; scanf(%c,%c,%d,%d,&a,&b,&c,&d); printf(c,%c,%c,%cn,a,b,c,d); 若运行时从键盘上输入:6,5,65,66。则输出结果是_。A:6,5,65,66B:6,5,6,5C:6,5,A,BD:6,5

3、,6,6答案:C第7题 (1.0分) 题号:2737有以下程序main() int m=3,n=4,x; x=-m+; x=x+8/+n; printf(%dn,x);程序运行后的输出结果是_。A:3B:5C:-1D:-2答案:D第8题 (1.0分) 题号:2693有如下程序main() int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2);运行该程序的输出结果是_。A:3 4B:4 2C:4 3D:3 3答案:D第9题 (1.0分) 题号:2797以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:#include

4、void main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确.这条语句是_.A:sum=0.0;B:sum+=score;C:ave=sum/4.0;D:printf(NO%d:%fn,n,ave);答案:A第10题 (1.0分) 题号:2799若有如下程序段,其中s、a、b、c均已定义为

5、整型变量,且a、c均已赋值(c大于0).s=a;for(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是( ).A:s=a+b;B:s=a+c;C:s=s+c;D:s=b+c;答案:B第11题 (1.0分) 题号:525C语言中不可以嵌套的是()。A:函数调用B:函数定义C:循环语句D:选择语句答案:B第12题 (1.0分) 题号:678当调用函数时,实参是一个数组名,则向函数传送的是()。A:数组的长度B:数组的首地址C:数组每一个元素的地址D:数组每个元素中的值答案:B第13题 (1.0分) 题号:2876有以下程序main() char s=n123; printf

6、(%d,%dn,strlen(s),sizeof(s);执行后输出结果是( )。A:赋初值的字符串有错B:6,7C:5,6D:6,6答案:C第14题 (1.0分) 题号:651以下定义语句中,错误的是()。A:int a=1,2;B:char *a3;C:char s10=test;D:int n=5,an;答案:D第15题 (1.0分) 题号:641若有说明:int a10;则对a数组元素的正确引用是()。A:a10B:a3,5C:a(5)D:a10-10答案:D第16题 (1.0分) 题号:635若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是()。A:2B:3C

7、:4D:无确定值答案:B第17题 (1.0分) 题号:637若有说明:int a34;则数组a中各元素()。A:可在程序的运行阶段得到初值0B:可在程序的编译阶段得到初值0C:不能得到确定的初值D:可在程序的编译或运行阶段得到初值0答案:D第18题 (1.0分) 题号:638设有数组定义: char array =China; 则数组 array所占的空间为()。A:4个字节B:5个字节C:6个字节D:7个字节答案:C第19题 (1.0分) 题号:2913相同结构体类型的变量之间,可以_.A:相加B:赋值C:比较大小D:地址相同答案:B第20题 (1.0分) 题号:557打开文件时,方式“w”

8、决定了对文件进行的操作是()。A:只写盘B:只读盘C:可读可写盘D:追加写盘答案:A第21题 (5.0分) 题号:2820有以下程序#include void main() int i; for(i=1;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf(%d,i); default: printf(%d,i); 执行后输出的结果是_.A:11122B:12C:12020D:120答案:A第22题 (5.0分) 题号:2822有以下程序#include void main() int s=0,a=1,n; scanf(%d,&n); do

9、 s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是( ).A:-1B:-3C:-5D:0答案:B第23题 (5.0分) 题号:2754有如下程序#includevoid main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%dn,a,b);该程序的输出结果是_。A:a=2,b=1B:a=1,b=1C:a=1,b=0D:a=2,b=2答案:A第24题 (5.0分) 题号:2821有以下程序#in

10、clude void main() int i=0,s=0; do if(i%2) i+;continue; i+; s+=i; while(i7); printf(%dn,s);执行后输出的结果是( ).A:16B:12C:28D:21答案:A第25题 (5.0分) 题号:2755有如下程序#includevoid main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(%fn,y);该程序输出结果是_。A:0.000000B:0.250000C:0.500000D:1.000000答案:

11、C第26题 (5.0分) 题号:2838以下程序中f函数的功能是将n个字符串,按由大到小的顺序进行排序。#include #include void f(char p10,int n) char t20; int i,j; for(i=0;in-1;i+) for (j=i+1;jn;j+) if(strcmp(pi,pj)0) strcpy(t,pi); strcpy(pi,pj); strcpy(pj,t); void main() char p10=abc,aabdfg,abbd,dcdbe,cd; f(p,5); printf(%dn,strlen(p0);A:6B:4C:5D:3答案

12、:C二、程序填空 共1题 (共计10分)第1题 (10.0分) 题号:3/*-【程序填空】-功能:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。-*/float s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) /*SPACE*/ 【?】 ; k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si; /*SPACE*/ 【?】

13、; wk=sum/5; /*SPACE*/ 【?】 ; k+; main() int i; fun1(s); /*SPACE*/ 【?】; for(i=0;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi);答案: 1). si=k 或 si=(i+1)*2 2). if( ( i + 1 )%5 = 0 ) 或 if( ( i + 1 )/5*5 =i+1) 3). sum=0 或 sum=0.0 4). fun2(s,w)三、程序改错 共2题 (共计20分)第1题

14、 (10.0分) 题号:421/*- 【程序改错】-功能:给一个不多于5位的正整数,要求: 一、求它是几位数, 二、逆序打印出各位数字。-*/#includestdio.hmain( ) /*FOUND*/ long a,b,c,d,e,x, scanf(%ld,&x); a=x/10000; /*FOUND*/ b=x/10000/1000; c=x%1000/100; d=x%100/10; e=x%10; /*FOUND*/ if (a=0) printf(there are 5, %ld %ld %ld %ld %ldn,e,d,c,b,a); else if (b!=0) print

15、f(there are 4, %ld %ld %ld %ldn,e,d,c,b); else if (c!=0) printf( there are 3,%ld %ld %ldn,e,d,c); else if (d!=0) printf(there are 2, %ld %ldn,e,d); else if (e!=0) printf( there are 1,%ldn,e); getch();答案: 1). long a,b,c,d,e,x; 2). b=x%10000/1000; 3). if (a!=0) 或 if (!a)第2题 (10.0分) 题号:417/*- 【程序改错】-功能

16、:下题是一段有关结构体变量传递的程序.-*/#include stdio.hstruct student int x; char c; a;main() a.x=3; /*FOUND*/ a.c=a f(a); /*FOUND*/ printf(%d,%c,a.x,b.c); getch();f(struct student b) b.x=20; /*FOUND*/ b.c=y;答案: 1). a.c=a; 2). printf(%d,%c,a.x,a.c); 3). b.c=y;四、程序设计 共2题 (共计20分)第1题 (10.0分) 题号:335/*-【程序设计】-功能:求给定正整数n以

17、内的素数之积。(n28)-*/#include stdio.h#includeconio.h long fun(int n) /*Program*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %ldn, fun(m); yzj(); getch(); yzj() FILE *IN,*OUT; int c ; int t; long o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.

18、dat,w); if(OUT=NULL) printf(Write File Error); for(c=1;c=5;c+) fscanf(IN,%d,&t); o=fun(t); fprintf(OUT,%ldn,o); fclose(IN); fclose(OUT);答案:-long i,k;long s=1; for(i=2;i=n;i+) for(k=2;ki;k+) if(i%k=0)break; if(k=i)s=s*i; return s;-第2题 (10.0分) 题号:411/*-【程序设计】-功能:编写函数fun将一个数组中的值按逆序存放,并在 main()函数中输出。例如:

19、原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。-*/#include stdio.h#define N 5main() int aN=8,6,5,4,1,i; for(i=0;iN;i+) printf(%4d,ai); printf(n); fun(a,N); for(i=0;iN;i+) printf(%4d,ai); yzj(); getch();int fun(int arr,int n) /*Program*/ /* End */ yzj() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN

20、=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n10;n+) fscanf(IN,%d,&in); fun(i,10); for(n=0;n10;n+) fprintf(OUT,%dn,in); fclose(IN); fclose(OUT);答案:-int i,t; for(i=0;in/2;i+) t=arri; arri=arrn-1-i; arrn-1-i=t; -试卷编号:12890所属语言:Turbo C试卷方案:lx试卷总分:

21、100分共有题型:4种一、单项选择 共26题 (共计50分)第1题 (1.0分) 题号:2674下面程序的运行结果是_。#include void main()int a=2;a%=4-1;printf(%d,a);a+=a*=a-=a*3;printf(%d,a);A:2,0B:1,0C:2,32D:-1,32答案:C第2题 (1.0分) 题号:2661下面程序的输出结果是( )。#include void main() int m=5; if(m+5) printf(%d n,m); else printf(%dn,m-); A:7B:6C:5D:4答案:B第3题 (1.0分) 题号:26

22、66正确的赋值表达式是()A:(a=3*5,b+5),c-3B:a=b=a*bC:a=b+=c-D:a5+b-=4+k答案:B第4题 (1.0分) 题号:2758设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为_。A:不定值B:4C:3D:1答案:C第5题 (1.0分) 题号:2746能正确表示a和b同时为正或同时为负的逻辑表达式是_。A:(a=0|b=0)&(a0| b=0&b=0)&(a0&b0)&(a+b0答案:D第6题 (1.0分) 题号:2699若变量已正确说明为float类型,要通过语句scanf(%f %f %f,&a,&b,&c);给 a赋予1

23、0.0,b赋予22.0,c赋予33.0,不正确的输入形式是:_。 A:10 22 33 B:10.0,22.0,33.0 C:10.0 22.0 33.0 D:10 22 33答案:B第7题 (1.0分) 题号:2688下面程序 main() int x=10,y=3; printf(%dn,y=x/y); 的输出是_。A:0B:1C:3D:不确定的值答案:C第8题 (1.0分) 题号:2714已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。A:scanf(%2d%2d%2d,&i,&j,&k);B:scanf(%d

24、%d %d,&i,&j,&k);C:scanf(%d,%d,%d,&i,&j,&k);D:scanf(i=%d,j=%d,k=%d,&i,&j,&k);答案:C第9题 (1.0分) 题号:2800下面程序的功能是输出以下形式的金字塔图案: * * * *#include void main() int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(j=1;j=_;j+) printf(*); printf(n); 在下划线处应填入的是( ).A:iB:2*i-1C:2*i+1D:i+2答案:B第10题 (1.0分) 题号:2808有

25、以下程序段int k=0;while(k=1) k+;while循环执行的次数是( ).A:无限次B:有语法错,不能执行C:一次也不执行D:执行1次答案:A第11题 (1.0分) 题号:528对于void类型函数,调用时不可作为()。A:自定义函数体中的语句B:循环体里的语句C:if语句的成分语句D:表达式答案:D第12题 (1.0分) 题号:2841有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )。A:3B:4C:5D:有语法错答案:A第13题 (1.0分) 题号:674以下错误的描述是:函数调用可以()。A:出现在执

26、行语句中B:出现在一个表达式中C:做为一个函数的实参D:做为一个函数的形参答案:D第14题 (1.0分) 题号:641若有说明:int a10;则对a数组元素的正确引用是()。A:a10B:a3,5C:a(5)D:a10-10答案:D第15题 (1.0分) 题号:644以下对一维整型数组a的正确说明是()。A:int a(10);B:int n=10,an;C:int n; scanf(%d,&n); int an;D:#define SIZE 10 (换行) int aSIZE;答案:D第16题 (1.0分) 题号:515int i,j,a23;按照数组a的元素在内存的排列次序,不能将数1,

27、2,3,4,5,6存入a数组的是()。A:for(i=0;i2;i+)for(j=0;j3;j+)aij=i*3+j+1;B:for(i=0;i3;i+)for(j=0;j2;j+)aji=j*3+i+1;C:for(i=0;i6;i+)ai/3i%3=i+1;D:for(i=1;i=6;i+)aii=i;答案:D第17题 (1.0分) 题号:640以下对二维数组a的正确说明是()。A:int a3B:float a(3,4)C:double a14D:float a(3)(4)答案:C第18题 (1.0分) 题号:657以下不能正确进行字符串赋初值的语句是()。A:char str5=goo

28、d!;B:char str=good!;C:char *str=good!;D:char str5=g,o,o,d;答案:A第19题 (1.0分) 题号:2916当定义一个结构体变量时,系统分配给它的内存是_.A:各成员所需内存量的总和B:结构中第一个成员所需内存量C:结构中最后一个成员所需内存量D:成员中占内存量最大者所需的容量答案:A第20题 (1.0分) 题号:732若执行fopen函数时发生错误,则函数的返回值是()。A:地址值B:0C:1D:EOF答案:B第21题 (5.0分) 题号:2755有如下程序#includevoid main() float x=2.0,y; if(x0.

29、0) y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(%fn,y);该程序输出结果是_。A:0.000000B:0.250000C:0.500000D:1.000000答案:C第22题 (5.0分) 题号:2754有如下程序#includevoid main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%dn,a,b);该程序的输出结果是_。A:a=2,b=1B:a=1,b=1C:a=1,b=0D:a=2,b=2答案:A第23

30、题 (5.0分) 题号:2822有以下程序#include void main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是( ).A:-1B:-3C:-5D:0答案:B第24题 (5.0分) 题号:2821有以下程序#include void main() int i=0,s=0; do if(i%2) i+;continue; i+; s+=i; while(i7); printf(%dn,s);执行后输出的结果是( ).A:16B:12

31、C:28D:21答案:A第25题 (5.0分) 题号:2820有以下程序#include void main() int i; for(i=1;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf(%d,i); default: printf(%d,i); 执行后输出的结果是_.A:11122B:12C:12020D:120答案:A第26题 (5.0分) 题号:2838以下程序中f函数的功能是将n个字符串,按由大到小的顺序进行排序。#include #include void f(char p10,int n) char t20; int

32、i,j; for(i=0;in-1;i+) for (j=i+1;jn;j+) if(strcmp(pi,pj)0) strcpy(t,pi); strcpy(pi,pj); strcpy(pj,t); void main() char p10=abc,aabdfg,abbd,dcdbe,cd; f(p,5); printf(%dn,strlen(p0);A:6B:4C:5D:3答案:C二、程序填空 共1题 (共计10分)第1题 (10.0分) 题号:3/*-【程序填空】-功能:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每

33、五个元素求一个平均值, 并将该值存放在数组w中。-*/float s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) /*SPACE*/ 【?】 ; k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si; /*SPACE*/ 【?】; wk=sum/5; /*SPACE*/ 【?】 ; k+; main() int i; fun1(s); /*SPACE*/ 【?】; for(i=0;i30;i+) if(i%5=0) printf(n);

34、printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi);答案: 1). si=k 或 si=(i+1)*2 2). if( ( i + 1 )%5 = 0 ) 或 if( ( i + 1 )/5*5 =i+1) 3). sum=0 或 sum=0.0 4). fun2(s,w)三、程序改错 共2题 (共计20分)第1题 (10.0分) 题号:440/*- 【程序改错】-功能:输入字符序列,字符序列以特殊字符“#”结束。程序从前 向后依次读入字符,并翻译出新的字符输出。翻译的规则 是:如果当前读入的字符是数字符,如果该字符的面值为

35、n, 则它的后一个字符(包括数字符)需重复输出n+1次如果当前 读入的字符不是数字符,则输出该字符。输出时,以上述一 次翻译为一组,不同组间输出用一个空白字符隔开。翻译 直至当前读入的字符为字符#,结束翻译和输出。-*/#includevoid main() char ch,nch; int count; int k; printf(Enter string.n); scanf(%c,&ch); /*FOUND*/ while(ch=#) if(ch=0&ch=9) /*FOUND*/ count=ch-0-1; scanf(%c,&nch); for(k=0;kcount;k+) print

36、f(%c,nch); else /*FOUND*/ printf(%f,ch); printf( ); scanf(%c,&ch); printf(#n);答案: 1). while(ch!=#) 2). count=ch-0+1; 3). printf(%c,ch);第2题 (10.0分) 题号:411/*- 【程序改错】-功能:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5-*/#include stdio.hmain() int n,i; printf(nplease input a number:n); scanf(%d,&n); printf(%d=,n); fo

37、r(i=2;i=n;i+) /*FOUND*/ while(n=i) /*FOUND*/ if(n%i=1) printf(%d*,i); /*FOUND*/ n=n%i; else break; printf(%d,n);答案: 1). while(n!=i) 2). if(n%i=0) 或 if (!(n%i) 3). n=n/i;四、程序设计 共2题 (共计20分)第1题 (10.0分) 题号:336/*-【程序设计】-功能:求一个n位自然数的各位数字的积。(n 是小于10的 自然数)-*/#include stdio.h#includeconio.h long fun(long n)

38、/*Program*/ /* End */ main() long m; printf(Enter m: ); scanf(%ld, &m); printf(nThe result is %ldn, fun(m); yzj(); getch(); yzj() FILE *IN,*OUT; int c ; long t; long o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(c=1;c0) d

39、=n%10; s*=d; n/=10; return s;-第2题 (10.0分) 题号:376/*-【程序设计】-功能:从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x10) z=log(x+3) (x-3) z=sin(x)/(cos(x)+4)-*/#include #includedouble y(float x) /*Program*/ /* End */main() float x; scanf(%f,&x); printf(y=%fn,y(x); yzj(); getch();yzj() FILE *IN,*OUT; int n; float i; double

40、o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n10) z=exp(x); else if(x-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z);-试卷编号:12891所属语言:Turbo C试卷方案:lx试卷总分:100分共有题型:4种一、单项选择 共26题 (共计50分)第1题 (1.0分) 题号:2694设有说明语句:char

41、a=72;则变量a_。A:包含1个字符B:包含2个字符C:包含3个字符D:说明不合法答案:A第2题 (1.0分) 题号:2690若变量已正确定义并赋值,下面符合C语言的表达式是_。A:a:=b+1B:a=b=c+2C:int 18.5%3D:a=a+7=c+b答案:B第3题 (1.0分) 题号:2697以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是_。A:x/y*zB:x*(1/(y*z)C:x/y*1/zD:x/y/z答案:A第4题 (1.0分) 题号:2745为了避免嵌套的条件分支语句ifelse的二义性,C语言规定:C程序中的els

42、e总是与( )组成配对关系。A:缩排位置相同的ifB:在其之前未配对的ifC:在其之前未配对的最近的ifD:同一行上的if答案:C第5题 (1.0分) 题号:2749设a=5、b=6、c=7、d=8、m=2、n=2,执行 (m=ab)&(n=cd)后n的值为_。A:1B:2C:3D:4答案:B第6题 (1.0分) 题号:2698设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为_。A:1B:3C:4D:不定值答案:B第7题 (1.0分) 题号:2734结构化程序由三种基本结构组成,三种基本结构组成的算法_。A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:

43、只能完成符合结构化的任务D:只能完成一些简单的任务答案:C第8题 (1.0分) 题号:2683请选出合法的C语言赋值语句_。A:a=b=58B:i+;C:a=58,b=58D:k=int(a+b)答案:B第9题 (1.0分) 题号:2792下面的程序 #include void main() int x=3; do printf(%dn,x-=2); while(!(-x) ); ( ).A:输出的是1B:输出的是1和-2C:输出的是3和0D:是死循环答案:B第10题 (1.0分) 题号:2799若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0).s=a;for

44、(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是( ).A:s=a+b;B:s=a+c;C:s=s+c;D:s=b+c;答案:B第11题 (1.0分) 题号:570以下叙述不正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C程序的基本组成单位是函数D:在C程序中,注释说明只能位于一条语句的后面答案:D第12题 (1.0分) 题号:670以下正确的说法是()。A:定义函数时,形参的类型说明可以放在函数体内B:return后边的值不能为表达式C:如果函数值的类型与返回值类型不一致,以函数值类型为准D:如果形参与实参类型不一致,

45、以实参类型为准答案:C第13题 (1.0分) 题号:563以下叙述中正确的是()。A:构成C程序的基本单位是函数B:可以在一个函数中定义另一个函数C:main()函数必须放在其它函数之前D:所有被调用的函数一定要在调用之前进行定义答案:A第14题 (1.0分) 题号:651以下定义语句中,错误的是()。A:int a=1,2;B:char *a3;C:char s10=test;D:int n=5,an;答案:D第15题 (1.0分) 题号:513int a10;合法的数组元素的最小下标值为()。A:10B:9C:1D:0答案:D第16题 (1.0分) 题号:703若有以下的定义:int t3

46、2;能正确表示t数组元素地址的表达式是()。A:&t32B:t3C:&t1D:t2答案:D第17题 (1.0分) 题号:647以下能对二维数组a进行正确初始化的语句是()。A:int a2=1,0,1,5,2,3;B:int a3=1,2,3,4,5,6;C:int a24=1,2,3,4,5,6;D:int a3=1,0,1,1,1;答案:B第18题 (1.0分) 题号:516static char str10=China;数组元素个数为()。A:5B:6C:9D:10答案:D第19题 (1.0分) 题号:2915static struct int a1;float a2;char a3;a

47、10=1,3.5,A;说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是_.A:a1B:a-1C:a0D:a10答案:C第20题 (1.0分) 题号:733以下叙述中不正确的是()。A:C语言中的文本文件以ASC码形式存储数据B:C语言中对二进制文件的访问速度比文本文件快C:C语言中,随机读写方式不适用于文本文件D:C语言中,顺序读写方式不适用于二进制文件答案:D第21题 (5.0分) 题号:2820有以下程序#include void main() int i; for(i=1;i3;i+) switch(i) case 1: printf(%d,

48、i); case 2: printf(%d,i); default: printf(%d,i); 执行后输出的结果是_.A:11122B:12C:12020D:120答案:A第22题 (5.0分) 题号:2821有以下程序#include void main() int i=0,s=0; do if(i%2) i+;continue; i+; s+=i; while(i7); printf(%dn,s);执行后输出的结果是( ).A:16B:12C:28D:21答案:A第23题 (5.0分) 题号:2822有以下程序#include void main() int s=0,a=1,n; sca

49、nf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是( ).A:-1B:-3C:-5D:0答案:B第24题 (5.0分) 题号:2755有如下程序#includevoid main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(%fn,y);该程序输出结果是_。A:0.000000B:0.250000C:0.500000D:1.000000答案:C第25题 (5.0分) 题号:2754有

50、如下程序#includevoid main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%dn,a,b);该程序的输出结果是_。A:a=2,b=1B:a=1,b=1C:a=1,b=0D:a=2,b=2答案:A第26题 (5.0分) 题号:2838以下程序中f函数的功能是将n个字符串,按由大到小的顺序进行排序。#include #include void f(char p10,int n) char t20; int i,j; for(i=0;in-1;i+) for (j=i

51、+1;jn;j+) if(strcmp(pi,pj)0) strcpy(t,pi); strcpy(pi,pj); strcpy(pj,t); void main() char p10=abc,aabdfg,abbd,dcdbe,cd; f(p,5); printf(%dn,strlen(p0);A:6B:4C:5D:3答案:C二、程序填空 共1题 (共计10分)第1题 (10.0分) 题号:3/*-【程序填空】-功能:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。-*/flo

52、at s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) /*SPACE*/ 【?】 ; k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si; /*SPACE*/ 【?】; wk=sum/5; /*SPACE*/ 【?】 ; k+; main() int i; fun1(s); /*SPACE*/ 【?】; for(i=0;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); f

53、or(i=0;i6;i+) printf(%8.2f,wi);答案: 1). si=k 或 si=(i+1)*2 2). if( ( i + 1 )%5 = 0 ) 或 if( ( i + 1 )/5*5 =i+1) 3). sum=0 或 sum=0.0 4). fun2(s,w)三、程序改错 共2题 (共计20分)第1题 (10.0分) 题号:4/*- 【程序改错】-功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。-*/#define N 11main() int i,j,t,number,aN=1,2,4,6,8,9,12,15,149,156; printf

54、(please enter an integer to insert in the array:n); /*FOUND*/ scanf(%d,&number) printf(The original array:n); for(i=0;i=0;i-) if(number=ai) /*FOUND*/ ai=ai-1; else ai+1=number; /*FOUND*/ exit; if(numbera0) a0=number; printf(The result array:n); for(i=0;i=0;i-) 或 for(i=N-2;0=i;i-) 3). a i + 1 =ai; 4)

55、. break;第2题 (10.0分) 题号:386/*- 【程序改错】-功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U) 的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。-*/#include #include fun ( char *s, int num5 ) int k, i=5; for ( k = 0; ki; k+ ) /*FOUND*/ numi=0; for (; *s; s+) i = -1; /*FOUND*/ switch ( s ) case a: case A: i=0; break; ca

56、se e: case E: i=1; break; case i: case I: i=2; break; case o: case O: i=3; break; case u: case U: i=4; break; /*FOUND*/ if (i 0) numi+; main( ) char s181; int num15, i; clrscr(); printf( nPlease enter a string: ); gets( s1 ); fun ( s1, num1 ); for ( i=0; i = 0)四、程序设计 共2题 (共计20分)第1题 (10.0分) 题号:387/*-

57、【程序设计】-功能:用函数求N个10,60上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。-*/int find(int arr,int n) int m=0; /*Program*/ /* End */ return(m);#define N 30#include stdlib.h#include stdio.hmain() int aN,i,k; for(i=0;iN;i+) ai=random(51)+10; for(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=find(a,N); if(k=0

58、) printf(NO FOUNDn); else printf(the max is:%dn,k); yzj(); getch();yzj() FILE *IN,*OUT; int n; int i5; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n5;n+) fscanf(IN,%d,&in); o=find(i,5); fprintf(OUT,%dn,o); fclos

59、e(IN); fclose(OUT);答案:-int i; for(i=0;im) m=arri;-第2题 (10.0分) 题号:408/*-【程序设计】-功能:编写函数fun求sum=d+dd+ddd+dd.d(n个d), 其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函 数中输入。-*/#include stdio.hmain() int d,n; long sum,fun(); printf(d=); scanf(%d,&d); printf(n=); scanf(%d,&n); sum=fun(d,n); printf(sum=%l

60、dn,sum); getch(); yzj();long int fun(int d,int n) /*Program*/ /* End */yzj() FILE *IN,*OUT; int n; int i2; long o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n2;n+) fscanf(IN,%d,&in); o = fun(i0,i1); fprintf(OUT,%ldn,

温馨提示

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

最新文档

评论

0/150

提交评论