C 样卷文件.docx
- 文档编号:12068257
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:18
- 大小:21.82KB
C 样卷文件.docx
《C 样卷文件.docx》由会员分享,可在线阅读,更多相关《C 样卷文件.docx(18页珍藏版)》请在冰点文库上搜索。
C样卷文件
C样卷
一、选择题
(本大题共40个选项,【1】~【40】每个选择项1.5分,共60分)
1.以下正确的叙述是【1】。
【1】A)在C语言源程序中,main函数必须位于文件的开头
B)在C语言源程序中,每行只能写一条语句
C)在C语言源程序中,变量必须先定义之后才能使用
D)在C语言源程序中,标识符的大小写字母没有区别
2.以下用户定义标识符中正确的是【2】。
【2】A)3fB)f3
C)f#3D)_f.3
3.若有定义chars[100];则以下能正确实现字符串输入的语句是【3】。
【3】A)scanf("%s",&s);B)getchar(s);
C)gets(&s);D)scanf("%s",s);
4.在C语言中,合法的字符串常量是【4】。
【4】A)"123abc"B)'abc123'
C)123abcD)abc123
5.在C语言中,以下【5】是不正确的实型常量。
【5】A)-1.2e-12B)+1.2e+12
C)-1.2e-1.2D)1.2E6
6.若有定义inta=3,b=4,c=5;则表达式(a>b)&&(++b==c)的值为【6】。
【6】A)0B)1
C)falseD)true
7.若有定义inta[5];则数组a中所有元素的初值为【7】。
【7】A)不确定B)0
C)1D)-1
8.以下程序运行结果是【8】。
main()
{inti=-1;
printf("%5x,%-8u,%5d\n",i,i,i);
}
【8】A)FFFF,65535,-1B)-0x3,65535,-1
C)ffff,65535,-1D)1,00065535,-1
9.若有定义doublef;inti;则下列表达式的类型【9】。
①f*5+i②f>9&&(i+6)
【9】A)①为float,②为floatB)①为float,②为int
C)①为double,②为intD)①为double,②为double
10.以下程序运行结果是【10】。
main()
{unsignedchara=0x5b,b=0xf0;
printf("%x\n",(a&b)>>4);
}
【10】A)50B)b
C)b0D)5
11.运行以下程序段时,由键盘输入:
123.456,abcde回车,则输出:
i=12,f=3.456,s=abcde。
选择正确选项完成程序段。
inti;
chars[100];
doublef;
scanf(【11】);
printf("i=%d,f=%6.3f,s=%s\n",i,f,s);
【11】A)"%2d%f,%s",&i,&f,sB)"%2d%lf%s",&i,&f,&s
C)"%d%lf,%s",&i,&f,sD)"%2d%lf,%s",&i,&f,s
12.以下程序的运行结果是【12】。
#include"stdio.h"
main()
{inti=0,j=0;
while(++i)
{if(i%3==0)continue;
elsej+=i;
if(i>5)break;
}
printf("%d\n",j);
}
【12】A)21B)19
C)12D)7
13.以下程序段的运行结果是【13】。
inta=0,b=2,c;
switch(a)
{case0:
c=b++;
case1:
switch(b)
{case1:
c++;break;
case2:
c*=b;break;
default:
c+=b;
}
break;
default:
c--;
}
printf("%d\n",c);
【13】A)5B)4
C)6D)不确定
14.以下不正确的叙述是【14】。
【14】A)函数用数组变量作形参,可以改变实参数组元素的值B)函数定义必须在主调函数之前C)函数形参的作用范围只是局限于所定义的函数内D)允许函数递归调用15.若有定义:
inta[3]={1,2,3},*p;则下列语句中不正确的是【15】。
【15】A)p=a[0];B)p=a;
C)p=&a[0];D)p=a+2;
16.以下程序在数组w中有n个元素,且已按由大到小顺序存放。
现插入一元素x,要求插入后数组w中的数仍由大到小存放。
选择正确选项完成程序。
#include"stdio.h"
main()
{intw[15]={55,19,13,8,5,5,1},n=7,x=15,i,pos=0;
while(x for(i=n;i>pos;i--)w[i]=【16】; w[pos]=x; n++; for(i=0;i printf("\n"); } 【16】A)w[i-1]B)w[i+1] C)w[i--]D)w[i++] 17.以下程序运行结果是【17】。 #include"stdio.h" main() {structtp {charname[10]; intnum; union {floatdata; doublescore[3]; }da; }; printf("%d\n",sizeof(structtp)); } 【17】A)10B)24 C)36D)40 18.若有定义: inta[3][4];则【18】不能通过p正确使用数组a的元素。 【18】A)int(*p)[4];p=a; B)int*p[3],i=3;while(--i>=0)p[i]=a[i]; C)int*p;p=&a[0][0]; D)int(*p)();p=a; 19.以下各语句或语句组中,不正确的是【19】。 【19】A)chars[]="abcde";B)char*s="abcde"; C)chars[100];D)char*s; s="abcde";s="abcde"; 20.以下程序运行结果是【20】。 voidfun(int*x) {staticinta; *x=++a; } main() {inti,t; for(i=0;i<10;i++)fun(&t); printf("%d\n",t); } 【20】A)1B)10 C)5D)不确定 21.若有: typedefintIntArray[10];IntArraya;则a是【21】。 【21】A)整型变量B)整型数组变量 C)结构体变量D)整型指针变量 22.以下程序利用宏定义取两个表达式x,y的较大者,选择正确选项完成程序。 【22】/*宏定义*/ main() {inta=5,b=8,c=20; printf("%d\n",MAX(a-b,b+c? a: b)); } 【22】A)#defineMAX(x,y)((x)>(y))? (x): (y) B)#defineMAX(x,y)x>y? x: y C)#defineMAX(x,y)x x: y D)#defineMAX(x,y)((x)<(y))? (x): (y) 23.以下程序运行结果是【23】。 intfun(intn) {if(n==2||n==1)return1; return(fun(n-1)+fun(n-2)); } main() {printf("%d\n",fun(6)); } 【23】A)8B)6 C)12D)10 24.以下程序运行结果是【24】。 #include"stdio.h" main() {inti; for(i=3;i<10;i++) {if(i*i/20>1)break; printf("%d",i); } printf("\n"); } 【24】A)34567B)34 C)345D)3456 25.以下程序运行结果是【25】。 #include"stdio.h" main() {inta=3,b=2; {intb=8; a+=b++; printf("%d,%d\n",a,b); } printf("%d,%d\n",a,b); } 【25】A)5,3B)5,3 5,25,3 C)11,9D)11,9 11,211,9 26.若有定义: intx=5,y=2;则表达式y=2+x,x++,2*y的值是【26】。 【26】A)4B)7 C)14D)6 27.以下不能对二维数组a进行正确初始化的语句是【27】。 【27】A)inta[3][4]={0}; B)inta[][4]={{1},{2},{3}}; C)inta[3][]={{1},{2,3,4},{5}}; D)inta[3][4]={1,2,3,4,5}; 28.以下程序段的运行结果是【28】。 doublefun(doublex){returnx*x;} main() {doublex=1.2,y; y=fun(x); printf("%.2f",y); } 【28】A)1.44B)不确定 C)1.00D)2.00 29.以下程序运行结果为–32,选择正确选项完成程序。 #include"stdio.h" main() {printf("%d\n",compare("abCd","abc")); } compare(char*s1,chars2)/*比较两个字符串的大小*/ {while(*s1&&*s2&&【29】) {s1++; s2++; } return*s1-*s2; } 【29】A)*s1! =*s2B)*s1==*s2 C)*s1=*s2D)s1! =s2 30.当前目录下有一数据文件data.txt,该文件中存有若干个实型数据,各实型数据之间用一个逗号隔开,以下程序输出data.txt中所有实型数据的平均值。 选择正确选项完成程序。 #include"stdio.h" main() {FILE*fp; floatf,average=0.0; intn=0; 【30】; while(! feof(fp)) {n++; fscanf(fp,"%f,",&f); average+=f; } average=average/n; printf("%f\n",average); fclose(fp); } 【30】A)fopen(fp,"data.txt","r")B)fopen("data.txt","r",fp) C)fp=fopen("data.txt","r")D)&fp=fopen("data.txt","r") 31.设有以下语句,则值为11的表达式是【31】。 structst{intn; charch; }a[3]={{10,'A'},{20,'B'},{30,'C'}},*p=&a[0]; 【31】A)p++->nB)++(p->n) C)p->n++D)(*p).n++ 32.若有定义inta,b;则用【32】定义的函数,执行语句swap(&a,&b);后,变量a与b的值没有交换。 【32】A)swap(int*p,int*q)B)swap(int*p,int*q) {int*t;{intt; t=(int*)malloc(sizeof(int));t=*p;*p=*q;*q=t; *t=*p;*p=*q;*q=*t;} } C)swap(int*p,int*q)D)swap(int*p,int*q) {inta,*t=&a;{int*t; *t=*p;*p=*q;*q=*t;t=p;p=q;q=t; }} 33.由健盘输入: abcxyz回车,则以下程序运行结果是【33】。 #include"stdio.h" main() {chars[100],*ps=s,*ps1="acy",*ps2="yac"; inti; gets(s); for(;*ps;ps++) {for(i=0;i<3;i++) if(*ps==*(ps1+i)) {*ps=*(ps2+i); break; } } printf("%s\n",s); } 【33】A)xyzabcB)ybaxcz C)abxcyzD)yzxcab 34.C语言规定,函数返回值的类型由【34】所决定。 【34】A)return语句中,表达式的类型 B)调用该函数时,主调函数的类型 C)调用该函数时,实参的类型 D)定义该函数时,函数返回值的类型 35.以下程序运行结果是【35】。 #include"stdio.h" main() {inti,j,n=3; for(i=1;i<=n;i++) {for(j=1;j<=2*i-1;j++) if((i+j)%2==0)printf("%d",i); elseprintf("%d",j); printf("\n"); } } 【35】A)1B)1 123123 3234313335 C)1D)1 123223 1234531333 36.若inta[][3]={1,2,3,4,5,6,7,8};则a数组第一维的大小是【36】。 【36】A)2B)3 C)4D)无确定值 37.运行printf("%d\n",strlen("a\n\x41"));结果是【37】。 【37】A)7B)6 C)4D)3 38.以下程序段运行结果是【38】。 enumcolor{red,blue=-3,yollow,green}; enumcolorcr=green; printf("%d\n",cr); 【38】A)greenB)-1 C)1D)不确定 39.以下程序运行结果是【39】。 #include"stdio.h" intz=3; intfun(intx) {z=2*x++; returnz; } main() {intx=2,y; y=fun(x)-3; printf("%d,%d,%d\n",x,y,z); } 【39】A)2,1,3B)3,1,4 C)3,1,3D)2,1,4 40.以下程序段中函数fun的功能是用来【40】。 structnode {intdata; structnode*next; }; voidfun(structnode*head)/*head指向链表首结点*/ {structnode*p=head; while(p! =NULL) {printf("%d",p->data); p=p->next; } } 【40】A)建立单向链表B)显示链表第一个结点的数据 C)显示单向链表中的所有数据D)显示链表最后一个结点的数据 二、请正确填充下面的划线部分,使其完成所要求的功能: (本大题共20个空,每个空2分,共40分。 请将答案写在答题卡对应栏中,答在试卷上不得分,每个空至多填一个语句) 1.以下fun函数将str中字符串的大写字母改成小写字母,小写字母改成大写字母,其它字符保持不变。 程序运行后的结果是: JSD;LD3,42gg789fd。 voidfun(charstr[]) {char*p=str; while(*p) {if(*p>='a'&&【1】)*p-=32; elseif(*p>='A'&&*p<='Z')*p+=32; 【2】; } } main() {chars[]="jsd;ld3,42GG789FD"; fun(s); puts(s); } 2.以下程序的功能是求一元二次方程ax2+bx+c=0的实根。 程序中把绝对值小于1.0e-10的数作为零处理。 #include"stdio.h" #include"math.h" main() {【3】a,b,c,x1,x2,q; printf("请输入一元二次方程的三个系数: \n"); do {scanf("%lf%lf%lf",&a,&b,&c); }while(fabs(a)<1.0e-10); q=b*b-4*a*c; if(【4】) {printf("没有实根! \n"); exit(0); } q=sqrt(【5】); x1=-b/(2*a); if(fabs(q)<1.0e-10) {printf("该方程两个相等的实根是: %.5f\n",【6】); } else {x2=q/(2*a); printf("该方程有两个不相等的实根,分别是: %.5f,%.5f\n",x1+x2,【7】); } } 3.以下sort函数用选择法对数组a前n个元素由小到大排序。 voidsort(inta[],intn) {inti,j,k,t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 样卷文件 文件