您好,欢迎访问三七文档
第1页(共6页)C语言试题题号一二三四五六七八九十总分附加题分数一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:。A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。4.设n=3;则n++的结果是()。A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:。A.x==0B.x==1C.x!=1D.x!=08.若有以下说明和语句:structworker{intno;班号姓名班级:学号:姓名:2char*name;}work,*p=&work;则以下引用方法不正确的是()。A.work.noB.(*p).noC.p-noD.work-no9.以下对二维数组进行正确初始化的是()。A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:。A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#includestdio.hmain(){inti=16,j,x=6;j=i+++1;x*=i=j;printf(“%d,%d\n”,j,x);}运行结果是:2.#includestdio.h#includemath.hmain(){inta=1,b=4,c=2;floatx=10.5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf(“%f\n”,z);}班级:学号:姓名:3运行结果是:3.#includestdio.hmain(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)d=25;elsed=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;switch(i){case9:i+=1;case10:i+=1;case11:i+=1;default:i+=1;}printf(“%d”,i);}运行结果:5.#includestdio.hmain(){inta[]={1,2,3,4},i,j,s=0;j=1;for(i=3;i=0;i--){s=s+a[i]*j;班级:学号:姓名:4j=j*10;}printf(s=%d\n,s);}运行结果:6.func(intx){x=20;}main(){intx=10;func(x);printf(“%d”,x);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:main(){intyear,leap;scanf(“%d”,&year);if()leap=1;elseleap=0;if()printf(“是润年”);elseprintf(“不是润年”);}2.将100至200间不能被3整除的数输出:main(){intn;班级:学号:姓名:5for(n=100;n=200;n++){if(n%3==0);printf(“%d”,n);}}3.判断m是否是素数#includemath.hmain(){intm,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i=k;i++)if(m%i==0);if(i=k+1)printf(“%disaprimenumber\n”,m);elseprintf(“%disnotaprimenumber\n”,m);}4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}};;for(i=0;i=2;i++)for(j=0;j=3;j++)if(a[i][j]max){max=a[i][j];;;}printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);}5.下面函数的功能是将两个字符串s和t连接起来。char*conj(char*s,char*t){班级:学号:姓名:6char*p=s;while(*s);while(*t){*s=;s++;t++;}*s=’\0’;;}四、编程(40分)1.计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。(13分)2.输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。(13分)3.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。(14分)C语言考试题题号一二三四五六七八九十总分附加题分数说明:请将答案写在答题纸的相应题号后面!!!!!一、填空题:(24分每空1.5分)1.已知:int*p,a;则语句p=&a;中的运算符&的含义班号姓名班级:学号:姓名:7是(1)。2.凡在函数体内没有明显存储类别说明的变量是(2)。3.已知:struct{intk;charc;floata;}test;则sizeof(test)的值是(3)。4.程序填空:(1)下面的程序是main函数利用函数abcd来交换main中的两个变量的值。#includestdio.hmain(){floatx=10,y=20;abcd(4);printf(“%f,%f”,x,y);}abcd(x,y)(5);{floattemp;temp=(6);班级:学号:姓名:8(7);(8);}(2)下面的程序是使用冒泡法对输入的10个数据从小到大排序。排好序的10个数分两行输出。#includestdio.hmain(){(9);intj,k;printf(“input10numbersplease\n”);for(j=0;(10);j++)scanf(“%f”,&a[j]);printf(“\n”);for(j=0;(11);j++)for(k=0;(12);k++)if(13){x=a[k];(14);a[k+1]=x;}班级:学号:姓名:9printf(“Thesorted10numbers:\n”);for(j=0;(15);j++){if(16)printf(“\n”);printf(“%f\t”,a[j]);}printf(“\n”);}二、单项选择题:(20分每题2分)1.C语言中基本数据类型包括()。A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、实型2.已知inti,a;执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是()。A.6B.12C.30D.363.C语言中规定函数的返回值的类型是由()。A.return语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定4.不能进行++和--运算的数据类型是()。A.指针B.doubleC.intD.long班级:学号:姓名:105.为了判断两个字符串s1和s2是否相等,应当使用()。A.if(s1==s2)B.if(s1=s2)C.if(strcpy(s1,s2))Dif(strcmp(s1,s2))6.若有以下说明和语句:structstu{intno;char*name;}student,*p=&student;则以下引用方法不正确的是()。A.student.noB.(*p).noC.p-noD.student-no7.以下不是死循环的语句为()。E.for(;;x+=k);F.while(1){x++};G.for(k=10;;k--)sum+=k;H.for(;(c=getchar())!=’\n’;)printf(“%c”,c);8.以下错误的描述是()。A.不同的函数中可以使用相同的变量名B.形式参数是局部变量C.一个函数内部定义的变量只能在本函数范围内有效D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效9.若用数组名作为函数调用时实参,则实际上传递给形参的是()。A.数组首地址B.数组的第一个元素值班级:学号:姓名:11C.数组中全部元素的值D.数组元素的个数10.已知inta,*p=&a;则为了得到变量a的值,下列错误的表达式是()。A.*&pB.*pC.p[0]D.*&a三、判断下列问题描述及语句正确与否,正确的打“√”。(16分每题2分)1.C的关键字都是小写的。2.一个复合语句是作为一个语句处理的且在逻辑上相互关联的一组语句。3.#definePI=3.141594.局部变量在进入代码块时生成,退出代码块时消失。5.inta=123456;6.函数可以嵌套定义,也可嵌套调用。7.switch与if不同,switch只能测试是否相等,而if中还能测试关系和逻辑表达式。8.break和continue语句都可用于选择结构和循环结构中。四、读程序,写出运行结果:(20分每题5分)1.main(){inta=5,b=4,x,y;x=a++*a++*a++;printf(“a=%d,x=%d\n”,a,x);y=--b*--b*--b;printf(“b=%d,y=%d\n”,b,y);}2.#includestdio.h班级:学号:姓名:12main(){structs1{charc[4],*s;}s1={“abc”,”def”};structs2{char*cp;structs1ss1;}s2={“ghi”,{”jkl”,”mno”}};printf(“%c%c\n”,s1.c[0],*s1.s);printf(“%s%s\n”,s1.c,s1.s);printf(“%s%s\n”,s2.cp,s2.ss1.s);printf(“%s%s\n”,++s2.cp,++s2.ss1.s);}3.#includestdio.hfunc(intb[]){intj;for(j=0;j4;j++)b[j]=j;}main()班级:学号:姓名:13{inta[4],k;func(a);for(k=0;k4;k++)printf(“%d\n”,a[k]);}6.voidfun(){staticinta=5;a++;printf(“a=%d\n”,a);}main(){intm;for(m=0;m=1;m++)fun();}五、编程(20分)1.有一个34的矩阵,找出最大值及该值所在位置。(10分)2.写一个函数,计算x的n次方。(10分)班级:学号:姓名:14C语言程序设计试题班号姓名班级:学号:姓名:15题号一二三四五六七八九十总分分数注意:请将答案写在答题纸上,否则无效!!!一、判断题:(12分每题2分)1、C语言规定:在一个源程序中,main函数的位置必须在最开始。2、假设所有变量均为
本文标题:C语言程序设计试题
链接地址:https://www.777doc.com/doc-4154756 .html