1、c语言试题1 5资料收集于网络,如有侵权 请联系网站删除 一、填空 共5题 (共计20分) 第1题 (4.0分) 题号:601 若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3 该数组中下标最小的元素名字是【1】.答案:(答案1) a0 第2题 (4.0分) 题号:327 执行语句char str81=abcdef;后,字符串str结束标志存储在str【1】 (在括号内填写下标值)中.答案: (答案1) 6 第3题 (4.0分) 题号:1568 设a=3,b=4,c=5,则表达式!(a+b)+c-1&b+c/2的值为【1】.答案: (1) 1 答案:294
2、 题号 (4.0分) 第4题. 】结构、选择结构、循环结构C语言的三种基本结构是【1 顺序答案: (答案1):1555 题号(4.0分) 第5题 . ,请填写以下程序段的输出结果【1】若所用变量都已正确定义for(i=1;ibc)a=b; else a=c; 则a的值为()。 A:3B:2C:1D:0 答案:C 第8题 (2.0分) 题号:675 关于建立函数的目的,以下正确的说法是()。 A:提高程序的执行效率 B:提高程序的可读性 C:减少程序的篇幅 D:减少程序文件所占内存 答案:B 第9题 (2.0分) 题号:540 指针变量p进行自加运算(即 执行p+;)后,地址偏移值为2,则其 数
3、据类型为()。 A:int B:float C:double D:char 答案:A 第10题 (2.0分) 题号:524 与实际参数为实型数组名相对应的形式参数不可以定义为()。 A:float a; B:float *a; C:float a; D:float (*a)3; 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 答案:C 第11题 (2.0分) 题号:721 fseek函数的正确调用形式是()。 A:fseek(文件类型指针,起始点,位移量) B:fseek(fp,位移量,起始点) C:fseek(位移量,起始点,fp) D:fseek(起始点,位移量,文件类型指针)答案
4、:B 第12题 (2.0分) 题号:177 以下描述中,正确的是()。 A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于C源文件的开始 C:C源程序中凡是行首以#标识的控制行都是预处理指令 D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备 答案:C 第13题 (2.0分) 题号:548 char *match(char c)是()。 A:函数定义的头部 B:函数预说明 C:函数调用 D:指针变量说明答案:A 第14题 (2.0分) 题号:515 int i,j,a23;按照数组a的元素在内存的排列次序,不能将数 1,2,3,4,5,6存入
5、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第15题 (2.0分) 题号:732 若执行fopen函数时发生错误,则函数的返回值是()。 A:地址值 B:0 C:1 D:EOF 答案:B 三、程序填空 共5题 (共计30分) 第1题 (6.0分) 题号:394 功能:用条件编译方法实现以下功能。输入一行电报文字,可以任 选两种方式输出,一种
6、为原文输出;另一种将字母变成下 一个字母(如a变成b,C变成D,其他字符不变)输出。 #include #define CHANGE main() /*SPACE*/ 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 char str80,【?】=str; printf(input string:); /*SPACE*/ gets【?】; printf(Output string:); #ifdef CHANGE for(;*s!=0;s+) if(*s=a&*s=A&*sZ&*sz) /*SPACE*/ *s=【?】; printf(%sn,str); #else printf(%sn
7、,str); #endif 答案: (答案1) *s (答案2) (str)或 (s) (答案3) *s=A (答案4) a 第2题 (6.0分) 题号:461 功能:从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。输入的字符串 以!结束。#include #include #include main() FILE *fp; char str100; int i=0; if(fp=fopen( est,w)=NULL) printf(cannot open the filen); exit(0); 只供学习与交流资料收集于网络,如有侵权 请联系网
8、站删除 printf(please input a string:n); gets(str); /*SPACE*/ while(【?】) if(stri=a&stri=z) /*SPACE*/ 【?】; fputc(stri,fp); i+; fclose(fp); /*SPACE*/ fp=fopen( est,【?】); fgets(str,strlen(str)+1,fp); printf(%sn,str); fclose(fp); 答案: (答案1) stri != ! (答案2) stri=stri-32 或stri= stri -32 (答案?尠屲或wr 或wr+ 第3题 (6.0
9、分) 题号:490 功能:利用函数计算连续的数组元素累加和的最大值。如果最大 值是负数则返回0; #include /*SPACE*/ int max_sum( 【?】, int n) int max_ending_here = 0; int max_so_far = 0; int i; for (i = 0; i n; i+) if (max_ending_here + xi max_so_far) max_so_far = max_ending_here; /*SPACE*/ 【?】; 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 #include void main(void)
10、 int x = 2, -3, 1, -1, 3, -2, -3, 3; int n = sizeof(x)/sizeof(int); int i; printf(Maximum Consecutive Elements Sum Program); printf(=); printf(nGiven Array :); for (i = 0; i n; i+) printf(M, xi); printf(nMaximum Sum is %d, max_sum(x, n); 答案: (答案1) int x (答案2) max_ending_here = 0 (答案3) return max_so_
11、far 第4题 (6.0分) 题号:474 功能:读入一行字符(如:a、.y、z),按输入时的逆序建立一个 链接式的结点序列,即先输入的位于链表尾,然后再按输入 的相反顺序输出,并释放全部结点。 #include #include main( ) struct node char info; struct node *link; *top,*p; char c; top=NULL; /*SPACE*/ while(c= 【?】) != n ) p=(struct node *)malloc(sizeof(struct node); p-info=c; p-link=top; /*SPACE*/
12、 【?】; while( top ) p=top; /*SPACE*/ 【?】; 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 putchar(p-info); free(p); 答案: (答案1) getchar( ) (答案2) top=p (答案3) top=top-link 第5题 (6.0分) 题号:31 功能:用冒泡法对数组a 进行由小到大的排序。 #include void fun(int a,int n) int i,j,t; /*SPACE*/ for (j=0; 【?】;j+) /*SPACE*/ for (i=0; 【?】;i+) /*SPACE*/ if(【?
13、】) t=ai; ai=ai+1; ai+1=t; main() int i,a10=3,7,5,1,2,8,6,4,10,9; /*SPACE*/ 【?】; for(i=0;i10;i+) printf(=,ai); 答案: (答案1) j=j或j=j或jj 或jn-1 (答案2) ii或ii或i=n-j-2 或ia i + 1 或a i + 1 ai (答案4) fun(a,10) 四、程序设计 共2题 (共计20分) 第1题 (10.0分) 题号:316 功能:统计出若干个学生的平均成绩,最高分以及得最高 分的人数。 例如:输入10名学生的成绩分别为92,87,68,56,92, 84,
14、67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。 #include 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 void wwjt(); float Max=0; int J=0; float fun(float array,int n) /*Program*/ /* End */ main( ) float a10,ave; int i=0; for(i=0;i10;i+) scanf(%f,&ai); ave=fun(a,10); printf(ave=%fn,ave); printf(max=%fn,Max); printf(Total
15、:%dn,J); wwjt(); void wwjt() FILE *IN,*OUT; float iIN10,iOUT; int iCOUNT; IN=fopen(in.dat,); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(iCOUNT=0;iCOUNT10;iCOUNT+) fscanf(IN,%f,
16、&iINiCOUNT); iOUT=fun(iIN,10); fprintf(OUT,%f %fn,iOUT,Max); fclose(IN); fclose(OUT); 答案:- 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 int i;float sum=0,ave; Max=array0; for(i=0;in;i+) if(Maxarray i) Max=array i; sum=sum+array i; ave=sum/n; for(i=0;in;i+) if(array i=Max) J+; return(ave); - 第2题 (10.0分) 题号:363 功能:求一个
17、给定字符串中的字母的个数。 #include void wwjt(); int fun(char s) /*Program*/ /* End */ main() char str=Best wishes for you!; int k; k=fun(str); printf(k=%dn,k); wwjt(); void wwjt() FILE *IN,*OUT; char sin80; int iOUT,i; IN=fopen(in.dat,); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed); 只供学习与交流资料收集于网络,如有侵权 请联系网站删除 for(i=0;i=a&si=A&si=Z) k+; return k; - 只供学习与交流
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1