01C语言统考.docx
- 文档编号:5280611
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:15
- 大小:30.25KB
01C语言统考.docx
《01C语言统考.docx》由会员分享,可在线阅读,更多相关《01C语言统考.docx(15页珍藏版)》请在冰豆网上搜索。
01C语言统考
第1页共9页
扬州大学试题纸
(2010-2011学年第1学期)
全校非计算机专业统考课程C及C++语言程序设计(闭)卷
注意:
1.请用答题纸答题,将答案填于相应的题号内。
否则不给分。
2.请认真填写并仔细核对答题纸上的学院、系科、班级、学号及姓名等。
3.请将试卷和答题纸分开上交。
一、单选题(每小题2分,共30分)
1.用于结构化程序设计的3种基本结构是
(1)。
A.顺序结构、选择结构、循环结构B.if,switch,break
C.for,while,do-whileD.if,for,continue
2.关于编译预处理命令,叙述正确的是()
A.预处理命令都以“#”开头
B.预处理命令必须位于程序的首部
C.预处理命令只能实现宏定义和条件编译的功能
D.每个程序必须在开头使用预处理命令#include
3.下列各组中不全是合法变量名的是
(2)。
A.day,lotus_1_2_3,x1B.Abc,_above,basic
C.M.John,year,sumD.YEAR,MONTH,DAY
4.能在C语言中定义三个整型变量a、b、c,并能给它们均赋值5的正确表示是
(4)。
A.inta=b=c=5;B.inta,b,c=5;
C.inta=5,b=5,c=5;D.a=b=c=5;
5.设有数学命题“当整数a的值为偶数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是(5)。
A.a%2==0B.!
(a%2==1)
C.!
(a%2)D.a%2
6.若有说明语句:
charc=’\321’;
则变量c(6)。
A.包含1个字符B.包含2个字符
C.包含3个字符D.说明不合法
7.在C语言中,break语句(7)。
A.能用在C源程序中的任何位置B.只能用在循环体内
C.只能用在循环体内或switch语句中D.可用作函数内的任一语句
8.下列程序段正确的是()
A.chars[]={‘xyz’};B.float*p,i;
scanf(“%s”,s);p=*p+i;
C.chars[5]=‘word’;D.inta[5]={0},*p=a;
puts(s);*p=*(p+1);
裁剪框
学院___________系____________班级_____________学号____________姓名_____________
------------------------------------------------装---------------------------------------订-------------------------------------------线-----------------------------------------------
9.以下叙述中,正确的是(10)。
A.C语言源程序总是从第一个函数开始执行
B.在C语言程序中,调用函数必须在main()函数中定义
C.C语言源程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始地方
10.若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是(11)。
A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
11.设有下列程序段:
structp{charname[9];intage;};
structpclass[10]={“John”,17,
“Paul”,19,
“Mary”,18,
“Adam”,16
};
则下列选项中,能打印出字母“A”的语句是(12)。
A.printf(“%c\n”,class[1].name[0])
B.printf(“%c\n”,class[2].name[0]);
C.printf(“%c\n”,class[3].name[0]);
D.printf(“%c\n”,class[3].name);
12.若有以下调用语句,则错误的fun函数的首部是(13)。
main()
{……
inta[50],n;
……
fun(n,&a[9]);
……
}
A.voidfun(intm,intx[])B.voidfun(ints,inth[50])
C.voidfun(intp,int*s)D.voidfun(intm,inta)
13.设有说明语句
char*s=“Yangzhou”;
s+=2;
则*s的内容是(14)。
A.YangB.ZhouC.nD.ng
14.下列对typedef的叙述中,错误的是(15)。
A.用typedef可以增加新类型
B.用typedef可以定义各种类型名,但不能用来定义变量
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
15.当说明一个结构体变量时,系统分配给它的内存是。
A.各成员所需内存量的总和B.结构中第一个成员所需内存量
C.成员中占内存最大者所需的容量D.结构中最后一个成员所需的内存量
第2页共9页
裁剪框
第3页共9页
二、填空题(每空1分,共20分)
1.C语言源程序是由函数构成的,一个C源程序至少包含一个
(1)函数。
对C程序中的任何部分可用
(2)作注释。
2.调用C语言标准库函数时要求用(3)预处理命令,strcat函数的作用是(4)。
3.数学表达式“
”所对应的C语言表达式为(5)。
在C程序中要计算这样的表达式,通常必须包含头文件(6)。
4.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是_(7)_____;数组名作为实参时,传递给对应形参的是数组的_(8)_________。
5.若有定义:
“inta[3][4]={{9,8,7},{6,5},{4,3,2,1}};”,则执行该说明语句后,a[0][2]=(9),a[1][2]=(10)。
6.在C程序中,若有函数定义如下:
voidf()
{staticinti;
…
}
其中,void表明函数f(11);而i是一个(12)整型变量。
7.设intm=3;floatn=12.6;charch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:
3,12.6a<回车换行>,则scanf语句应是scanf(“(13)”,(14));。
8.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(15);定义一个函数时,若缺省该函数返回值的类型,则默认返回值为(16)型。
9.设有说明语句:
char*s="\twe\017xyz";
则指针变量s指向的字符串所占的字节数是(17)。
若有如下程序段:
char*s="\twe\018xyz";
for(;*s!
=’\0’;s++)printf("*");
则for循环体语句的执行次数是(18)次。
10.设inta[5]={l,3,5,7,9},*p=&a[2];,
则*p++的值是(19);p=&a[3],++(*p)的值是__(20)_。
裁剪框
第3页共8页
第4页共9页
三、阅读程序写出结果(每小题4分,共20分)
1.下列程序的运行结果是。
#include
main()
{ints=1,n=2468;
do{s*=n%10;
n/=10;
}while(n);
printf(“%d\n”,s);
getch();
}
2.下列程序的运行结果是。
#include
voidf(intx,inty,intz)
{inttemp;
temp=x;x=y;y=temp;
x=x*x;y=y*y;z=x-y;
}
main()
{intx=10,y=100,z=50;
f(x,y,z);
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
getch();
}
3.以下程序运行的结果是。
#include
#include
main()
{inti,k;
for(i=1;i<5;i++)
{k=sub(&i);
printf("%4d",k);
}
printf("\n");
getch();
}
intsub(int*s)
{staticintt=0;
t=*s+t;
returnt;
}
裁剪框
第4页
第5页共9页
4.下面程序段运行的结果是__________________。
#include
#include
main()
{inti,j=3;
for(i=j;i<=2*j;i++)
switch(i/j)
{case0:
case1:
printf("$");break;
case2:
printf("##");
}
getch();
}
5.下面程序段运行的结果是__________________。
#include
#include
inta[3][4]={1,2,3,4,5,6,7,8,9,10};
main()
{inti,*p=&a[0][0];
for(i=0;i<2;i++)
{if(i==0)a[i][i+1]=*p+1;
elsep++;}
printf("%d\n",*p);
getch();
}
四、完善程序题(每空1分,共30分)
1.以下程序的功能是统计正整数的各位数字中零的个数,并求出各位数字中的最大者。
请填空。
#include
#include
main()
{longintn,t;
intcount=0,max=0;
scanf("%ld",&n);
while(n)
{t=
(1);
if(t==0)count++;
elseif(max (2); } printf("count=%d,max=%d\n",count,max); getch(); } 裁剪框 2.以下程序在a数组中查找与x值相同的元素的所在位置。 请填空。 #include #include main() {inta[11],x,i; printf("Enter10Integers;\n"); for(i=1;i<=10;i++) scanf("%d",a+i); printf("Enterx;"); scanf("%d",&x); a[0]=(3); i=10; while(x! =a[i])(4); if((5)) printf("%5d'spositionis: %4d\n",x,i); else printf("%dNotbeenfound! \n",x); getch(); } 3.以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,并要求绝对值误差不超过0.001。 请填空。 #include #include #include floatf(floatx) {floaty; y=(6); returny; } main() {floatm=-100,n=90,r; r=(m+n)/2; while((7)) {if(f(r)*f(n)<0) m=r; elsen=r; (8); } printf("Thisfangchengjieis%6.3f\n",r); getch(); } 第6页共9页 裁剪框 4.函数viodget(inta[],intn)的功能是: 将长度为n的数组a中所有满足 “(千位上的数-百位上的数+十位上的数)*个位上的数等于4”条件的数输出。 请填空。 例: 7612,(7-6+1)*2等于4,则该数满足条件。 #defineN10 #include #include voidget(inta[],intn) {inti,b,e,d,x; for(i=0;i {b=a[i]%1000/100; d=a[i]/1000; (9); (10); if((11)) printf("%8d",a[i]); } } main() {inta[N]={1031,4587,8712,8684,5671,6541,6212,5040,4512,4581}; (12); getch(); } 5.从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。 请填空。 #defineN10 #include #include structstudent {charname[20]; charsex; intscore; }stu[N]; voidmain() {inti;floataver,sum=0; for(i=0;i {scanf(“%d,%c%s”,&stu[i].score,(13),(14)); (15); } aver=__(16)_; printf(“aver=%6.2f\n”,aver); getch(); } 第7页共9页 裁剪框 第8页共9页 6.设n0是一个给定的正整数。 对于i=0,1,2,…,定义: 若ni是偶数,则ni+1=ni/2;若ni是奇数,则ni+1=3ni+1;若ni是1,则序列结束。 用这种方法产生的数称为冰雹数(hailstone)。 函数voidhailstones(intn),其功能是显示由n产生的序列,并按如下形式输出。 Hailstonesgeneratedby77: 77232116582988 442211341752 26134020105 168421 Numberofhailstonesgenerated: 23 请填空。 voidhailstones(intn) {inti=0; while(n! =1) {printf("%5d",n); i++; if(n%2==1) _(17) else _(18) if(_(19))printf("\n"); } printf("%5d\n",n); printf("Numberofhailstonesgenerated: %5d\n",i+1);} main() {intn; scanf("%d",&n); printf(“Hailstonesgeneratedby%d: ”,n); _(20);} 7.输入两个正整数,求其最大公约数。 请填空。 #include intgcd(intm,intn) {intr; while(n! =0) {_(21); _(22); _(23);} returnm } main() {inta,b,t; scanf(“%d%d”,&a,&b); if(a t=a,a=b,b=t; printf(“%d”,gcd(a,b)); } 裁剪框 8.函数char*conj(char*p1,char*p2)的功能是实现将两个字符串p1和p2连接起来(要求该函数返回字符串p1的首地址),请填空。 #include char*conj(char*p1,char*p2) {char*p=p1; while(*p1)(24); while(*p2){*p1=(25)______;p1++;p2++;} *p1=’\0’; return(26); } main() {chars1[30],s2[10],*p; gets(s1);gets(s2); p=conj(s1,s2);printf(“%s\n”,p); } 9.程序功能: 将一字符串做压缩处理。 编程要求: (1)编写一个函数intcompress(chars[]),将s中连续出现的多个相同字符压缩为一个字符,统计被删除的字符个数,返回被删除的字符个数。 (2)编写主函数main,从键盘读入一行字符数据放入一个字符型数组中,调用compress函数对该字符数组中字符做压缩处理,输出压缩后的字符串。 (3)测试数据及结果如下: 测试数据: @@@@@Iwwillllsuccessful 测试结果: @Iwilsuccessful 11 #include #include #include main() {chars[]="@@@@@Iwwillllsuccessful"; intn; n=(27); puts(s); printf("\n%d\n",n); getch(); } intcompress(chars[]) {char*p=s,*q; intn=0; while(*p) {q=p+1; while((28)) {q++; n++; } strcpy((29)); p++; } (30); } 第9页共9页 第10页共10页 一、单选题(根据题号依次填入,每小题2分,共30分。 ) (1)~(5)(6)~(10)(11)~(15) 二、填空题(每空1分,共20分) (1) (2)(3) (4)(5)(6) (7)(8)(9) (10)(11)(12) (13)(14)(15) (16)(17)(18) (19)(20) 三、阅读程序写出结果(每小题4分,共20分) 1.2. 3.4. 5. 四、完善程序题(每空1分,共30分) (1) (2)(3) (4)(5)(6) (7)(8)(9) (10)(11)(12) (13)(14)(15) (16)(17)(18) (19)(20)(21) (22)(23)(24) (25)(26)(27) (28)(29)(30) 《C及C++语言程序设计》答题纸 学院___________班级_____________学号___________姓名__________ 题目 一 二 三 四 总分 得分 合分人 阅卷人 复核人 核分人 AAACDACDCDCDCAA 一、单选题(每小题2分,共30分) (1)~(5)(6)~(10)(11)~(15) 二、填空题(每空1分,共20分) (1)main (2)/*…*/(3)#include或include (4)连接2个字符串(5)fabs(x-y)/sqrt(a*b+c*d)(6)math.h (7)值传递或单向值传递(8)首地址(9)7 (10)0(11)无返回值(12)静态局部或静态内部 (13)%d,%f%c(14)&m,&n,&c(15)auto或自动 (16)int或整(17)8(18)8 (19)5(20)8 三、阅读程序写出结果(每小题4分,共20分) 1.3842.x=10,y=100,z=50 3.136104.$$$## 5.2 四、完善程序题(每空1分,共30分) (1)n%10 (2)n=n/10(3)x (4)i--(5)i或i! =0或i>0(6)2*x*x*x-4*x*x+3*x-6 (7)fabs(f(r))>0.001(8)r=(m+n)/2(9)e=a[i]%10 (10)x=a[i]%100/10(11)(d-b+x)*e==4(12)get(a,N) (13)&stu[i].sex(14)stu[i].name(15)sum+=stu[i].score (16)sum/N(17)n=3*n+1(18)n=n/2 (19)i%6==0(20)hailstones(n)(21)r=m%n (22)m=n(23)n=r(24)p1++ (25)*p2(或*p1=*p2)(26)p(27)compress(s) (28)*q==*p(29)p+1,q(或strcpy(p+1,q))(30)returnn或return(n) 《C及C++语言程序设计》参考答案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 语言 统考