C语言考试题库综合1.docx
- 文档编号:9128747
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:19.69KB
C语言考试题库综合1.docx
《C语言考试题库综合1.docx》由会员分享,可在线阅读,更多相关《C语言考试题库综合1.docx(21页珍藏版)》请在冰豆网上搜索。
C语言考试题库综合1
试卷编号:
10184
所属语言:
TurboC
试卷方案:
fny-13
试卷总分:
110分
共有题型:
7种
━━━━━━━━━━━━━━
一、填空共5题(共计15分)
━━━━━━━━━━━━━━
第1题(3.0分)
调用fopen函数打开一文本文件,在"使用方式"这一项中,
为追加而打开需填入【1】。
答案:
1).a或a+
第2题(3.0分)
C语言把文件看作是一个【1】的序列。
答案:
1).字符或字节
第3题(3.0分)
如果函数不要求带回值,可用【1】来定义函数返回值为空。
答案:
1).void
第4题(3.0分)
若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次。
While((ch=getchar())=='e')printf("*");
答案:
1).0
第5题(3.0分)
已知a=13,b=6,a%b的十进制数值为【1】。
答案:
1).1
━━━━━━━━━━━━━━
二、判断共5题(共计10分)
━━━━━━━━━━━━━━
第1题(2.0分)
如果有一个字符串,其中第十个字符为'\n',则此字符串的
有效字符为9个。
答案:
N
第2题(2.0分)
在TurboC中,下面的定义和语句是合法的:
file*fp;fp=fopen("a.txt","r");
答案:
N
第3题(2.0分)
charc[]="VeryGood";是一个合法的为字符串数组赋值的语句。
答案:
Y
第4题(2.0分)
若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:
N
第5题(2.0分)
若有inti=10,j=0;则执行完语句
if(j=0)i++;elsei--;i的值为11。
答案:
N
━━━━━━━━━━━━━━━━━
三、单项选择共10题(共计10分)
━━━━━━━━━━━━━━━━━
第1题(1.0分)
执行下面程序后,输出结果是()。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
A:
45
B:
27
C:
18
D:
72
答案:
A
第2题(1.0分)
C语言中的文件的存储方式有()。
A:
只能顺序存取
B:
只能随机存取(或直接存取)
C:
可以顺序存取,也可随机存取
D:
只能从文件的开头进行存取
答案:
C
第3题(1.0分)
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A:
3
B:
2
C:
1
D:
0
答案:
C
第4题(1.0分)
下列定义数组的语句中不正确的是()。
A:
staticinta[2][3]={1,2,3,4,5,6};
B:
staticinta[2][3]={{1},{4,5}};
C:
staticinta[][3]={{1},{4}};
D:
staticinta[][]={{1,2,3},{4,5,6}};
答案:
D
第5题(1.0分)
以下定义语句中,错误的是()。
A:
inta[]={1,2};
B:
char*a[3];
C:
chars[10]="test";
D:
intn=5,a[n];
答案:
D
第6题(1.0分)
p1,p2为指向浮点的指针变量,则下列运算错误的是().
A:
*p1-*p2
B:
p1++
C:
*p1%*p2
D:
p1+p2
答案:
C
第7题(1.0分)
设有定义:
intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。
A:
p=1;
B:
*q=2;
C:
q=p;
D:
*p=5;
答案:
D
第8题(1.0分)
若有定义:
inta=7;floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
A:
2.500000
B:
2.750000
C:
3.500000
D:
0.000000
答案:
A
第9题(1.0分)
假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!
k1)x--;
elseif(k2)x=4;
elsex=3;
A:
14
B:
4
C:
15
D:
3
答案:
B
第10题(1.0分)
数组名作为实参数传递给函数时,数组名被处理为()。
A:
该数组的长度
B:
该数组的元素个数
C:
该数组的首地址
D:
该数组中各元素的值
答案:
C
━━━━━━━━━━━━━━━━
四、多项选择共5题(共计10分)
━━━━━━━━━━━━━━━━
第1题(2.0分)
以下对C语言中的函数描述不正确的有()。
A:
可以嵌套定义,不可以嵌套调用
B:
不可以嵌套定义,可以嵌套调用
C:
可以嵌套定义,也可以嵌套调用
D:
嵌套定义和嵌套调用都不允许
答案:
ACD
第2题(2.0分)
以下选项中合法的表达式是()。
A:
0<=x<100
B:
i=j==0
C:
(char)(65+3)
D:
x+1=x+1
答案:
ABC
第3题(2.0分)
已定义c为字符型变量,则下列语句中错误的是()。
A:
c='97';
B:
c="97";
C:
c=97;
D:
c="a";
答案:
ABD
第4题(2.0分)
以下关于数组描述错误的是()。
A:
数组的大小是固定的,但可以有不同的类型的数组元素
B:
数组的大小是可变的,但所有数组元素的类型必须相同
C:
数组的大小是固定的,所有数组元素的类型必须相同
D:
数组的大小是可变的,可以有不同的类型的数组元素
答案:
ABD
第5题(2.0分)
星号‘*’在C语言里用作
A:
注释语句的起始符号
B:
乘法运算符
C:
说明指针类型
D:
取地址运算
答案:
BC
━━━━━━━━━━━━━━━━
五、程序填空共3题(共计15分)
━━━━━━━━━━━━━━━━
第1题(5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输入字符串,再输入一个字符,将字符串中与输入字符相
同的字符删除。
-------------------------------------------------------*/
#include"stdio.h"
voidfun(chara[],charc)
{
inti,j;
/***********SPACE***********/
for(i=j=0;【?
】;i++)
if(a[i]!
=c)a[j++]=a[i];
/***********SPACE***********/
【?
】;
}
voidmain(void)
{
chara[20],cc;
gets(a);
/***********SPACE***********/
【?
】;
/***********SPACE***********/
【?
】;
puts(a);
}
答案:
1).a[i]!
='\0'或a[i]或a[i]!
=NULL
2).a[j]='\0'或a[j]=NULL或a[j]=0
3).cc=getchar()或scanf("%c",&cc)
4).fun(a,cc)
第2题(5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
计算个人与各科平均成绩及全班平均成绩,并在屏幕上显
示出来。
-------------------------------------------------------*/
#defineM5/*定义符号常量人数为5*/
#defineN4/*定义符号常量课程为4*/
#include"stdio.h"
main()
{
inti,j;
voidaver(floatsco[M+1][N+1]);
staticfloatscore[M+1][N+1]={{78,85,83,65},{88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,72}};
aver(score);
clrs
cr();
printf("学生编号课程1课程2课程3课程4个人平均\n");
for(i=0;i { printf("学生%d\t",i+1); /***********SPACE***********/ for(j=0;j<【? 】;j++) printf("%6.1f\t",score[i][j]); printf("\n"); } for(j=0;j<8*(N+2);j++) printf("-"); printf("\n课程平均"); for(j=0;j printf("%6.1f\t",score[i][j]); printf("\n"); getch(); } voidaver(floatsco[][N+1]) { inti,j; /***********SPACE***********/ for(i=0;i<【? 】;i++) { for(j=0;j { sco[i][N]+=sco[i][j]; sco[M][j]+=sco[i][j]; sco[M][N]+=sco[i][j]; } /***********SPACE***********/ sco[i][N]【? 】N; } for(j=0;j /***********SPACE***********/ sco[M][【? 】]/=M; sco[M][N]=sco[M][N]/M/N; } 答案: 1).N+1或1+N或5 2).M或5 3)./= 4).j 第3题(5.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输入两个整数x,y,请把这两个数由小到大输出。 -------------------------------------------------------*/ #include voidmain(void) { intx,y,t; /***********SPACE***********/ scanf("%d%d",【? 】); /***********SPACE***********/ if(【? 】) /***********SPACE***********/ {【? 】} printf("smalltobig: %d%d\n",x,y); } 答案: 1).&x,&y或&y,&x 2).x>y或x>=y或y 3).t=y;y=x;x=t;或t=y,y=x,x=t;或t=x;x=y;y=t;或t=x,x=y,y=t; ━━━━━━━━━━━━━━━━ 六、程序改错共2题(共计20分) ━━━━━━━━━━━━━━━━ 第1题(10.0分) /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写input()和output()函数输入,输出5个学生的数据记录。 ------------------------------------------------------*/ #include"stdio.h" #defineN5 structstudent { charnum[6]; charname[8]; intscore[4]; }stu[N]; input(stu) structstudentstu[]; { /**********FOUND**********/ inti;j; for(i=0;i { printf("\npleaseinput%dof%d\n",i+1,N); printf("num: "); scanf("%s",&stu[i].num); printf("name: "); scanf("%s",stu[i].name); for(j=0;j<3;j++) { /**********FOUND**********/ printf("score%d.",j); scanf("%d",&stu[i].score[j]); } printf("\n"); } } print(stu) structstudentstu[]; { inti,j; printf("\nNo.NameSco1Sco2Sco3\n"); /**********FOUND**********/ for(i=0;i<=N;i++) { printf("%-6s%-10s",stu[i].num,stu[i].name); for(j=0;j<3;j++) printf("%-8d",stu[i].score[j]); printf("\n"); } } main() { input(); print(); getch(); } 答案: 1).inti,j; 2).printf("score%d.",j+1); 3).for(i=0;i 第2题(10.0分) /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写一个函数,该函数可以统计一个长度为3的字符串在另 一个字符串中出现的次数。 例如: 假定输入的字符串为: asdasasdfgasdaszx67asdmklo,字符 串为: asd,则应输出n=4。 ------------------------------------------------------*/ #include #include #include intfun(char*str,char*substr) { /**********FOUND**********/ inti,n=0 /**********FOUND**********/ for(i=0;i<=strlen(str);i++) if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2])) /**********FOUND**********/ ++i; returnn; } main() { charstr[81],substr[4]; intn; clrscr(); printf("输入主字符串: "); gets(str); printf("输入子字符串: "); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf("n=%d\n",n); getch(); } 答案: 1).inti,n=0; 2).for(i=0;i<=strlen(str)-3;i++)或for(i=0;i 3).n++;或n+=1;或n=n+1;或++n; ━━━━━━━━━━━━━━━━ 七、程序设计共3题(共计30分) ━━━━━━━━━━━━━━━━ 第1题(10.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 用函数求N个[10,60]上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。 ------------------------------------------------*/ intfind(intarr[],intn) { intm=0; /**********Program**********/ /**********End**********/ return(m); } #defineN30 #include"stdlib.h" #include"stdio.h" main() { inta[N],i,k; for(i=0;i a[i]=random(51)+10; for(i=0;i { printf("%5d",a[i]); if((i+1)%5==0)printf("\n"); } k=find(a,N); if(k==0) printf("NOFOUND\n"); else printf("themaxis: %d\n",k); yzj(); getch(); } yzj() { FILE*IN,*OUT; intn; inti[5]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<5;n++) { fscanf(IN,"%d",&i[n]); } o=find(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti; for(i=0;i if(arr[i]%5==0&&arr[i]>m) m=arr[i]; ---------------------- 第2题(10.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 给定n个数据,求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。 ------------------------------------------------*/ #include intstation(ints[],intn) { /**********Program**********/ /**********End**********/ } main() { inta[100],n,i,t; clrscr(); scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); t=station(a,n); printf("themax_valuepositionis: %d\n",t); yzj(); getch(); } yzj() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } o=station(i,10); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k])k=i; return(k+1); ---------------------- 第3题(10.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 ------------------------------------------------*/ #include"stdio.h" #include"conio.h" intfun(intn) { /**********Program**********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试 题库 综合