c语言程序设计试卷及答案(A)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A。 p=&a
B。 p=a
C. *p=&a
D. *p=*a
16.以下函数调用语句中,func(a+b,c-d+100);含有的实参个数是( )。
A. 1
B. 2
C。 4
D. 5
17.有以下定义:struct person{char name[9]; int age;}
struct person class[10]={“Johu",17,“Paul”,19,“Mary”,18,“Adam”,16,};
第 7 页,共 7 页
#include <stdio。h>
#define SIZE 10
struct Student_type <—--———————-—-——-———
{ char name[10];
程
int num;
序
int age;
段
char addr[15];
1
}stud[SIZE];
<—-——-——--——-----—
7。 存储字符串“program”的字符数组至少需要____个元素。
8 指针变量可以加减一个整数,例如:_______________;指针变量可以有空值,例
第 3 页,共 7 页
如_____________________________________________________.
9 以下程序从键盘输入 10 个学生的有关数据,然后把它们转存到磁盘文件上去。
{ int c; a+=a; b+=b; c=fun2(a,b);
return c; }
fun2(int a,int b)
第 5 页,共 7 页
{ int c; c=a*b%3; return c; } main( ) { int x=2,y=4; printf(”%d\n”,fun1(x,y)); } 5。 若有以下程序段,执行后的输出结果是____。 int a=0,b=0,c=0; c=(a-=a—5),(a=b,b+3); printf(“%d,%d,%d\n",a,b,c); 6. 若有以下程序段,执行后的输出结果是____。
;
i++
)
序
scanf(”%s%d%d%s",stud[i].name,&stud[i]。num,&stud[i].age,stud[i].addr); 段
save( );
3
第 4 页,共 7 页
return 0;
}
<----————-—
-----——--
请回答问题:程序段 1 完成的功能是___________________________________;
void save( )
〈--—-—-—-------
—---—
{ FILE *fp; int i;
if((fp=fopen(”stu。dat","wb”))==NULL)
程
{ printf("cannot open file\n");
序
return;
段
}
2
for(i=0;i<SIZE;i++)
if(fwrite(&stud[i],sizeof(struct Student_type),1,fp)!=1)
{t = b[i];_______;b[ j]=t;}}
main()
{ int a[]={5,8,6,2,7,4,1,3};
int i;
sort(a,8);
for(i = 0;i<8;i ++ )
printf(“﹪5d",a[i]);
printf(“\ n");}
6. printf(”%5.3f\n”,123456.12345);输出为_____。
A. 0
B.1
C。 3
D. 4
9. 下面语句执行后输出结果为( )。
int x=10,y=10,z=10; printf(“%d,%d,%d ”,x++,——y,++z);}
A。 10,10,10
B. 10,9,11
C。 9,10,11 D。 11,10,9
第 1 页,共 7 页
10。以下选项中不是 C 语句的是( )。
i=t%10; t=t/10; j=t%10; k=t/10;
printf(“%d”,i*100+j*10+k);
}
当输入 123 时,输出结果为____。 2。 以下程序的输出结果是____。
main( ) { int i=0,j=0,a=6; if((++i>0)||(++j>0)) a++; printf(“i=%d,j=%d,a=%d”,i,j,a); } 3。 以下程序的输出结果是____. main( ) { int n=10; while(n>7) { printf(“%d,"n); n-- ;} 4. 以下程序的输出结果是____. fun1(int a,int b)
[0]);
18。下列关于 break 和 continue 语句的叙述正确的是( )。
A.都可以出现在程序的任何位置 B.break 语句可以出现在循环体或 switch 语句中
C. continue 语句可以出现在循环体或 switch 语句中 D。两者必须配对使用
第 2 页,共 7 页
19。用作累加器和累乘器的变量应该赋初始值为( )和( )。
main() { int i; for(i=3;i<10;i++) {if(i%4= =0)continue; else printf(”%d,”,i);} } 四、编程题(每小题 5 分,共 10 分)
1. 编程实现计算 1 到 100 之间的奇数之和,偶数之和。
2.
编写程序求
e
的值,当通项小于
10-7
《C 语言程序设计》 2013 至 2014 学年度第 1 学期期 末 (A)卷
专业班级
姓名
学号
题号 一
二
三
四
五
六
七
八 合计
得分
评卷人
(考生注意:考试时间为 120 分钟。答案须写在答题纸上,并注明题号,考试结束 后将试卷连同答题纸一齐交)
一、单项选择题(每小题 2 分,共 40 分)
1。在一个 C 语言程序中,有并且只能有一个( )函数。
A。 0
B. 1
C。 2
D。 3
12.不能表达:x 为奇数时表达式为“真",偶数时表达式为“假”的表达式是( ).
A. x%2= =1
B。 !(x%2= =0) C。 !(x%2)
D. x%2
13.以下程序段中 while 语句的循环次数是( )。
int i=0;while(i=1) {i++;}
A。无限次 B. 有语法错误,不能执行
A。 main 函数
B。自定义函数
C。外部函数
2。一个 C 语言程序,总是从( )函数开始执行。
D.内部函数
A。 main 函数
B。自定义函数
3.下列标识符中,不能用作变量名的是(
A. _1234_
B。 _1Leabharlann 2C.外部函数 )。C. int_2_
D。内部函数 D。 2_int_
4.下列字符常量不合法的是( ).
A。 ‘2’
B. ‘\t’
5。执行以下语句后的输出结果为(
C. ‘ab’ ).
D. ‘ \n’
int x; float y; y=3.6; x=(int)y+10; printf(“x=%d,y=%f”,x,y); A. x=13.6,y=3.600000 B. x=13,y=3。600000 C。 x=13,y=3 D. x=13,y=3。
A. {int i; i++; printf("%d\n”, i); }
B. ;
C. a=5,c=10
D. { ; }
11。以下程序的输出结果是( )。
main( )
{ int x=2,y=-1,z=2;
if( x<y)
if(y〈0) z=0;
else z=z+1;
printf(“%d”,z); }
二、填空(每空 1 分,共 20 分)
1. .c 。obj .exe
2。 9.5
第 6 页,共 7 页
3. && || !
4。n〉1,n——,1.0/n 或者 n>=2,—-n,1。0/(12—n)等类似形式。
5。 j=i+1,>,b[i]=b[j]
6. 123456.123 7。 8 8。P++ P=NULL 9。定义一个结构体类型的数组变量,用来存放学生信息;
6
6.以下哪种变量类型在 C 语言中不存在 ( ).
A。 整型变量 B。实型变量
C。 字符串变量
D.字符变量
7.设 m=10,n=4,则赋值运算 m%=n+1 执行后 m 的值是( )。
A。 1
B。 2
C。 3
D. 0
8。下面语句执行后输出结果为( )。
int x=10,y=3,z; printf(“%d\n",z=(x%y,x/y));}
程序段 2 完成的功能是___________________________________;
程序段 3 完成的功能是___________________________________。
三、程序阅读(每小题 5 分,共 30 分)
1。 执行以下程序:
main( )
{ int i,j,k,t;
scanf(“%d",&t);
printf(”file write error\n”);
fclose(fp);
}
<-—-—--——--
—-——-—---
int main()
<————-——
—————---—-——
{ int i;
printf(“enter data of students:\n”);
程
for
(
i=0
;
i
〈
SIZE
C。 一次也不执行 D。 执行一次
14。假设 a,b 均为字符数组以下正确的输入语句是( )。
A.gets(a,b); B。 scanf(“%s%s”,a,b); C. scanf(“%s%s",&a,&b);D。gets
(“a”); gets(“b”);
15.若有定义:int a,*p; 则以下正确的赋值表达式是 ( )。
A.0 0
B.0 1
C。1 0
D。1 1
20.下列语句( )可以实现变量 a 与 b 的数值交换。
A.{a=b;b=a;} B.{t=a;b=a;a=t;} C{t=a;a=b;b=t;}。
D。以上
都正确
二、填空(每空 1 分,共 20 分)
1. C 语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过
自定义函数 save 用来在磁盘上建立文件并把学生信息通过 frwrite 函数写到磁盘 文件;
主函数完成从键盘输入学生信息,然后调用 save 函数。 三、程序阅读(每小题 5 分,共 30 分)
1。321
2。i=1,j=0 ,a=7
3。 10,9,8,
4。 2
5.0,0,5
6。3,5,6,7,9, 四、编程题(每小题 5 分,共 10 分)
则下面能输出字母 M 的语句是( ).
A. printf(“%c\n",class[3].name);
B. printf(“%c\n",class[3]。name[1]);
C. printf(“%c\n”,class[2].name[1]);
D。printf(“%c\n” , class[2] 。 name
停止计算。e≈1+
11!
21!
1 n!
五、附加题(不计入总分)
1.请完整写出用递归方法求 n!的 C 语言程序;
2.请完整写出用递归方法实现汉诺塔问题的 C 语言程序;
3。编写一个找出所有“水仙花"数的 C 语言程序。 参考答案及评分标准
一、单项选择题(每小题 2 分,共 40 分)
1~5 AADCB 6~10CDCBC 11~15CCABA 16~20BDBBC
s=s+_____; printf(“%f”,s);}
5. 以下程序的功能是用选择法对数组 a 中的整数由小到大进行排序.
void sort(int b[],int n)
{ int i,j,t;
for(i = 0;i<n – 1;i ++ )
for(_____;j<n;j ++ )
if(b[i]_____b[ j])
连接后,生成文件的后缀是_____。
2。 表达式 3.5+1/2+56%10 的结果为_____。
3. C 语言中的三种逻辑运算符分别是_____、_____、_____。
4. 填空完成以下计算 s=1+1/2+1/3+……+1/10 的程序
main( )
{ int n; float s=1。0;
for(n=10; _____; _____ )
1. 编程实现计算 1 到 100 之间的奇数之和,偶数之和。
答案(略),评分标准,首先实现功能,其次看设计规范,酌情扣减。
2。
编写程序求
e
的值,当通项小于
10-7
停止计算。e≈1+
11!
21!
1 n!
答案(略),评分标准,首先实现功能,其次看设计规范,酌情扣减。 五、附加题(不计入总分) 答案(略)