您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页浙江理工大学2009年春08级c期末试卷b卷(含答案)

浙江理工大学2009年春08级c期末试卷b卷(含答案)

来源:爱go旅游网
2009年08级C程序设计期末考试卷(B)

[注意] 所有答案写在单张的答题卷上。

一、 判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。)

(1) C语言程序的变量必须先定义再使用。

(2) do-while语句构成的循环不能用其他语句构成的循环来代替。 (3) C语言规定,函数的实参应与其对应的形参类型一致。 (4) C语言认为名为Student和student的变量是不同变量。

(5) 当两个字符串所包含的字符个数相同时,才能比较两个字符串的大小。 (6) C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句。 (7) 在C语言中,八进制数是用英文字母o后加一个整数来表示,例如o123。 (8) C语言的所有循环语句都要求至少要执行一次循环体。 (9) 在C语言中,函数不能嵌套定义,但可以嵌套调用。

(10) 数组char x[]=\"12345\";和char y[]={'1','2','3','4','5'};长度相同。

二、 单选题(本题共20分,每小题2分)

(11) ______是合法的用户自定义标识符。。

[A] b-b

[C] _isw

(12) _____是不正确的字符常量。

[A] '\\n' [C] \"a\"

[A] k=(a>b)?1:0; [C] k=a<=b;

[B] '1' [D] '\\101' [B] k=a>b; [D] a<=b ? 0 : 1; [B] [D] float

(13) 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和______等价。

(14) 在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。

[A] int

[B] double

[C] void [D] char

(15) 如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是

________。

[A]#include [C]#include

[B]#include [D]#include

第 1 页(共 7 页)

(16) 在C 语言程序中,在函数内部定义的变量称为______。

[A] 全局变量 [B] 外部变量 [C] 局部变量 [D] 内部变量 (17) 表达式 (4 >> 2) - !-1 + 4 & 6 ^ 2 << 1的值是:

[A] 0 [B] 1 [C] 7 [D] 12 (18) C程序的基本结构有_____。

[A] 选择、重复和模块 [C] 顺序、选择和模块

[B] 顺序、选择和循环 [D] 逻辑、物理和程序

(19) 函数调用语句 func((a1,a2,a3),(a4,a5)); 的参数个数是 :

[A] 2 [B] 5 [C] 1 [D] 调用方式不合法 (20) 对于如下说明,语法和语义都正确的赋值是___C__。

int c, *s, a[]={1, 3, 5};

[A] c=*s; [B] s[0]=a[0]; [C] s=&a[1]; [D] c=a;

第 2 页(共 7 页)

三、 程序填空题(本题共30分,每小题2分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。 1【程序说明】

输入1 个正整数 n, 计算并输出 s 的前n项的和。 S = 1 -1/2 + 1/3 - 1/4 + 1/5 -1/6 + „„ 【程序代码】

#include void main( ) { int k, flag, n; float s;

flag=1; s=0;

scanf(\"%d\

for (k=1 ; k<=n; k++){ s=s+ (21) ; (22) ; }

printf(\"sum=%f\\n\}

【选项】

(21) [A] 1/k

[C] 1/k*flag (22) [A] flag++

[B] 1.0/k [D] 1.0/k*flag

[B] flag = -flag

[C] flag = -k [D] k= -flag

2【程序说明】

输入以 -1结束的一批整数,输出其中的最大值。 例如: 输入 -3 -8 -10 -1 后,输出:max=-3。 【程序代码】

#include void main( ) { int max, x;

scanf(\"%d\ if(x!=-1){ (23) ; while( (24) ){ if(maxmax=x;

第 3 页(共 7 页)

(25) ; }

printf(\"max=%d\\n\ } }

【选项】 (23)

[A] max=x

[B] x= max

[C] max=-1 [D] x=-1

(24) [A] x==-1 [B] x!=-1

[C] x>-1 [D] x<-1 [A] scanf(\"%d\ [B] scanf(\"%d\\n\ (25) [C] printf(\"%d\ [D] scanf(\"%d\ 3【程序说明】

求出200以内的整数中,最大的可以被17整除的数是哪个数。 【程序代码】

#include ___26___ {

int i;

for(____27____;____28____;i--) {

if(___29____)

break;

}

printf(\"%d\n\ }

【选项】 (26)

[A] main() [B] void main() [C] main(void) [D] int main() (27)

[A] 200 [B] i=0

[C] i=200 [D] int i=200 (28)

[A] i<200 [B] i>200 [C] i<0 [D] i>0 (29)

[A] i % 17 == 0 [B] i % 17 != 0 [C] i / 17 == 0 [D] i / 17 != 0 (30) [A] i [B] i%17

[C] i/17 [D] i \\17

第 4 页(共 7 页)

4【程序说明】

下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。 程序的输出结果是:After swap 5, 3。 【程序代码】 #include \"stdio.h\"

void main() {

int a, b;

a = 3, b = 5;

swap( 31 ) ; printf(\"After swap %d, %d\}

swap( 31 ) { int t;

33 ; 34 ; 35 ; }

【选项】

(31) [A] &a , &b

[C] &b, &a (32) (33) (34) (35)

[A] int x, int y [C] int *y, int *x [A] x=*t [C] t=x [A] x=y [C] *x=*y [A] y=t [C] y=*t

[B] a , b [D] b, a

[B] int &x, int &y [D] int *x, int *y [B] t=*x [D] x=t [B] x=*y [D] *x=y [B] *y=t [D] *y=*t

四、 程序阅读题(本题共20分,每小题5分)

阅读下列程序并写出运行结果。 1【程序】

# include void main() { int k = 10; do{

k = k - 1; }while (k = =0);

printf(\"k=%d\}

程序的输出结果是_______。

2【程序】

#include int z;

第 5 页(共 7 页)

void p(int *x, int y) { ++*x; y--;

z=*x+y+z;

printf(\"%d, %d, %d\\n\}

void main()

{ int x=1, y=5, z=9; p(&x, y);

printf(\"%d, %d, %d\\n\}

程序的输出结果是_______。

3【程序】

#include void main() {

int num=0; while(num<=8) {

num++;

printf(\"%d#\ }

printf(\"\\n\"); }

程序的输出结果是_______。

4【程序】

# include void main( )

{ int k, n1, n3[10]; char c; n1=0;

for(k=0; k<10; k++) n3[k]=0;

while((c=getchar( ))!='\\n'){ switch(c){

case'0':case '1': case '2':

case '3': case '4':case'5': case '6': case '7': case '8': case '9': n3[c-'0']++; break; default: n1++; break; } }

if(n1) printf(\"%d \ for(k=0; k<10; k++)

if(n3[k]) printf(\"%d \}

输入123+234=357Yes?<回车>后,下列程序的输出结果是_____。

五、 程序设计题(本题共20分)

1. [程序说明] (6分)

从键盘读入长整形数number,请编写函数 sum(number),返回正整数number的各位数字之和(number是长整型)。

例如:从键盘输入6321,则输出sum(6321)=21 。

2. [程序说明] (5分)

函数 ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。

例如:调用ff(\"every\后返回2,因为在字符串\"every\"中字符'e'出现了2次。

第 6 页(共 7 页)

3. [程序说明] (9分)

从键盘输入一个字符ch,输出该字符在文本文件 input.txt 的每一行中出现的次数。 ( 必须调用第2题定义的函数 ff 统计ch的出现次数 )。 例如:如果文件input.txt中存放了下列数据: every 121

I am a student.

运行程序,并输入'e'后,输出 2 0 1

2009年08级C程序设计期末考试B卷参

姓名___________学号___________班级____________得分___________

[注意] 所有答案写在单张的答题卷上。

六、 判断题(正确的答A,错误的答B,本题共10分,每小题1分) 题号 答案

七、 单选题(本题共20分,每小题2分) 题号 答案

1 A 2 B 3 A 4 A 5 B 6 A 7 B 8 B 9 A 10 B 11 C 12 C 13 C 14 A 15 B 16 C 17 A 18 B 19 A 20 C 八、 程序填空题(本题共30分,每小题2分) 题号 答案 21 D 22 B 23 A 24 B 25 D 26 B 27 C 28 D 29 A 30 A 第 7 页(共 7 页)

题号 答案

31 A 32 D 33 B 34 C 35 B 第 8 页(共 7 页)

九、 程序阅读题(本题共20分,每小题5分)

程序1 k=9 如果没写”k=”,扣2分 程序2 2, 4, 6 2, 5, 9 每行2.5分,格式错扣1分。 程序3 1#3#5#7#9# 错1个数字扣1分 程序4 6 1 2 3 1 1 1 错1个数字扣1分 十、 程序设计题(本题共20分)

(1)6分

1. #include int sum (long number)

{ int s=0,m;

while (number!=0) { m=number%10; s+=m;

number=number/10; }

return s; }

void main() {

long number=0;

scanf(“%ld”,&number);

评分标准: include语句:0.5分 主函数定义:0.5分 变量定义:0.5分 函数定义:1分 算法实现:1.5分 scanf语句:0.5分 printf语句:0.5分 函数调用:1分 第 9 页(共 7 页)

printf(“sum(%ld)=%d\\n”,number,sum(number)); }

(2)5分

int ff(char *str, char ch) { int count=0;

while(*str){ if(*str==ch) count++; str++; }

return count; }

(3)9分

评分标准: 变量定义:0.5分 函数定义:1分 算法实现:2.5分 函数返回:1分 #include

#include void main() {

char ch,c,s[80]; int k; FILE *fp;

if((fp=fopen(\"input.txt\ {

printf(\"error\\n\"); exit(0); }

ch=getchar(); k=0;

while(1){ c=fgetc(fp); if(c=='\\n'||c==EOF){ s[k]='\\0'; k=0;

printf(\"%d\\n\ if(c==EOF) break; }

else

s[k++]=c;

}

fclose(fp);

}

评分标准: include语句:0.5分 主函数定义:0.5分 变量定义:0.5分 打开文件:1分 关闭文件:1分 循环+beaak:1分 读入文件内容:1分 算法实现:2.5分 函数调用:1分 第 10 页(共 7 页)

或 k=0;

while(!feof(fp)){ c=fgetc(fp); if(c!='\\n') s[k++]=c; else{

s[k]='\\0'; k=0;

printf(\"%d\\n\ } }

if(c!='\\n'){ s[k]='\\0';

printf(\"%d\\n\ }

2009年08级C程序设计期末考试B卷参

姓名___________学号___________班级____________得分___________

[注意] 所有答案写在单张的答题卷上。

十一、 判断题(正确的答A,错误的答B,本题共10分,每小题1分) 题号 答案

十二、 单选题(本题共20分,每小题2分) 题号 答案

1 A 2 B 3 A 4 A 5 B 6 A 7 B 8 B 9 A 10 B 11 C 12 C 13 C 14 A 15 B 16 C 17 A 18 B 19 A 20 C 十三、 程序填空题(本题共30分,每小题2分) 题号

21

22

23

24

25 26 27 28 29 30 第 11 页(共 7 页)

答案 题号 答案

D 31 A B 32 D A 33 B B 34 C D 35 B B C D A A 第 12 页(共 7 页)

十四、 程序阅读题(本题共20分,每小题5分)

程序1 k=9 如果没写”k=”,扣2分 程序2 2, 4, 6 2, 5, 9 每行2.5分,格式错扣1分。 程序3 1#3#5#7#9# 错1个数字扣1分 程序4 6 1 2 3 1 1 1 错1个数字扣1分 十五、 程序设计题(本题共20分)

(1)6分

2. #include int sum (long number)

{ int s=0,m;

while (number!=0) { m=number%10; s+=m;

number=number/10; }

return s; }

void main() {

long number=0;

scanf(“%ld”,&number);

评分标准: include语句:0.5分 主函数定义:0.5分 变量定义:0.5分 函数定义:1分 算法实现:1.5分 scanf语句:0.5分 printf语句:0.5分 函数调用:1分 第 13 页(共 7 页)

printf(“sum(%ld)=%d\\n”,number,sum(number)); }

(2)5分

int ff(char *str, char ch) { int count=0;

while(*str){ if(*str==ch) count++; str++; }

return count; }

(3)9分

评分标准: 变量定义:0.5分 函数定义:1分 算法实现:2.5分 函数返回:1分 #include

#include void main() {

char ch,c,s[80]; int k; FILE *fp;

if((fp=fopen(\"input.txt\ {

printf(\"error\\n\"); exit(0); }

ch=getchar(); k=0;

while(1){ c=fgetc(fp); if(c=='\\n'||c==EOF){ s[k]='\\0'; k=0;

printf(\"%d\\n\ if(c==EOF) break; }

else

s[k++]=c;

}

fclose(fp);

}

评分标准: include语句:0.5分 主函数定义:0.5分 变量定义:0.5分 打开文件:1分 关闭文件:1分 循环+beaak:1分 读入文件内容:1分 算法实现:2.5分 函数调用:1分 第 14 页(共 7 页)

或 k=0;

while(!feof(fp)){ c=fgetc(fp); if(c!='\\n') s[k++]=c; else{

s[k]='\\0'; k=0;

printf(\"%d\\n\ } }

if(c!='\\n'){ s[k]='\\0';

printf(\"%d\\n\ }

第 15 页(共 7 页)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务