好文档 - 专业文书写作范文服务资料分享网站

四川大学C程序设计方案期末考试

天下 分享 时间: 加入收藏 我要投稿 点赞

四川大学期 C 程序设计期末考试试题(B 闭卷)

(2008——2009 课程号: 909002020 适用专业年级: 学年第 下 学期) 成绩: 姓名: 课序号: 课程名称: 程序设计 C 任课教师: 学生人数: 印题份数: 学号:

考 试 须 知 四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作 管理办法》和《四川大学考场规则》 。有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作 弊处罚条例》进行处理。 四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》《四川大学考 、 场规则》和《四川大学监考人员职责》 。有违反学校有关规定的,严格按照《四川大学教学事故认定 及处理办法》进行处理。文档收集自网络,仅用于个人学习

一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案。每小题 1 分,共 40 分)

1.编译是指将源文件翻译成( ) 。

A) 目标文件 B) 可执行文件 C) 文本文件 D) 系统文件 2.以下说法中正确的是( ) 。

A) C语言程序总是从第一个的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分 3.以下属于整型常量不正确写法的为( ) 。 A) 123 B) 0123 C) 0x123 D) 1,230 4. 以下正确声明整型变量的为( ) 。 A) int 1x, 2x, 3x;

B) int 1x, int 2x, int 3x; C) int x1, x2, x3;

D) int x1, int x2, int x3; 5.设有如下定义: int x=10,y=3,z=1; 则语句printf(\的输出结果是( ) 。

文档收集自网络,仅用于个人学习 A) 1 B) 0 C) 4 D)3 6.以下程序的输出结果是( ) 。 int a=5;

float x=3.14f; a*=x*(‘E’- ‘A’);

printf(“%f\\n”,(float)a);

A) 62.000000 B) 62.800000 C) 63.000000 D) 62 文档收集自网络,仅用于个人学习 7.若变量已正确定义,要将 a 和 b 中的数进行交换,下面选项中错误的是( A) a=a+b;b=a-b;a=a-b; B) t=a, a=b, b=t; C) a=t;t=b; b=a; D) t=b; b=a; a=t;

8.设 x 为 int 型变量,则执行以下语句后,x 的值为( ) 。 int x = 10; x*=x/=x; printf(\ A)0 B)1 C)-10 D)10

1 / 7

9.下列不合法的字符常量为( ) 。 A) ‘a’ B) ‘\\n’ C) “a” D) ‘\\\\’

10.有字符串“09\\\\10\\\\01\\n”, 以下说法正确的是( ) 。

A) 字符串的长度为 10 个字符 B) 字符串在内存中占据 10 个字节 C) 字符串包含 7 个字符 D) 字符串包含 3 个字符 11.设整型变量x为5,使y不为2的表达式是( ) 。 A) y=x/2 B)y=6-(--x) C)y=x%2 D)y=x>3?2:1 12.为表示关系 x≤y≤z,应使用的 C 语言表达式是( ) 。

A) x<=y<=z B) x<=y & y<=z C) x<=y && y<=z D) x<=y || y<=z 文档收集自网络,仅用于个人学习 13.表达式 !x 与以下哪个表达式等价( ) 。 A)x==0 B)x==1 C)x!=0 D)x!=1 14.以下程序的输出结果是( ) 。 main() { int k=3; if (k=5) k++;

else k--; printf(\

A)6 B)5 C)4 D)2 15.表达式 10!=9;的值是( ) 。

A) true B) false C) 0 D) 1

16.设int x=1,y=1;表达式(!x++ || y--)的值是( ) 。 A)0 B)1 C)2 D)-1

17.设整型变量a的值为2,执行语句a+=a-=a*a;后,变量a的值是( ) 。 A)0 B)-4 C)4 D)2 18.下列说法正确的是( ) 。

A)用 for、while 和 do?while 三种循环处理同一问题,无法互相代替。 B)break 语句只能用于 switch 语句或者循环语句中。

C)用 switch 语句实现的功能,不一定能由多个 if?else 语句实现。 D)continue 语句能用于 switch 语句中。 19.以下程序的输出结果是( ) 。 char str[15]=”hello!”; printf(“%d\\n”,strlen(str));

A)15 B)6 C)16 D)7 20.下面程序段的输出结果是( ) 。 int i=2;

while(i-->=0) ; printf(“%d”,i);

A)2 B)0 C)-1 D)-2

21.设有定义语句: char s[]=“China”;则不能输出该字符串 s 的语句是( ) 。 A)puts(s) B)printf(“%s”, s)

C)putchar(s) D)int i; for(i=0;s[i]!=’\\0’;i++) printf(“%c”,s[i]); 文档收集自网络,仅用于个人学习 22.判断字符串 s1 是否等于字符串 s2,应当使用( ) 。

A)if(s1=s2) B)if(s1==s2) C)if(!strcmp(s1,s2)) D)if(strcmp(s1,s2)==1)

2 / 7

23.下面关于数组的描述,正确的是( ) 。 文档收集自网络,仅用于个人学习 A)定义数组时的长度可以用一个已经赋值的整型变量表示 B)数组中各个元素的数据类型可以不同。 C)可以直接对整型数组整体赋值。

D)在定义数组时若对全部数组元素赋初值,则可以不指定数组长度。 24.以下不能正确定义二维数组的语句是( ) 。

A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4}; 文档收集自网络,仅用于个人学习 C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}}; 文档收集自网络,仅用于个人学习 25.在下列选项中,没有构成死循环的程序段是( ) 。 A)int i=100;

B)int k=1000; while(1) do {i=i0+1; { if(i>100) ++k; break }; }while (k>=10000); 文档收集自网络,仅用于个人学习 C)int s=36;while(s);--s; D)for(; ; );

26.不能把字符串Hello!赋给数组s的语句是( ) 。

A)char s[10]={'H','e','l','l','o','!'}; B)char s[10]; s=\文档收集自网络,仅用于个人学习 C)chars[10]; strcpy(s,\ D)char s[10]=\文档收集自网络,仅用于个人学习 27.下列关于变量作用域的叙述中,正确的是( ) 。 A) 主函数中定义的变量在整个程序范围内都是有效的。 B) 在一个程序文件中定义的所有变量都不允许重名。 C) 自定义函数中的变量在主函数中不能使用。 D) 全局变量在整个程序范围内都是有效的。 28.以下程序段的输出结果是( ) 。 char s1[100]=“12345”, s2[10]=“1234”; printf(“%d”,strlen(strcpy(s1, s2)));

A)110 B)100 C)9 D)4

29.函数调用时实参与对应形参之间的数据传递方式是( ) 。 A)双向值传递 B)由用户指定 C)单向值传递 D)先由实参传给形参,再由形参传回给实参

30.在宏定义#define PI 3.1415926 中,用宏名 PI 代替一个( ) 。 A)常量 B)单精度数 C)双精度数 D)字符串 31.执行下面的程序后,a的值是( ) 。 #define SQR(X) X*X main( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m); printf(\

A)10 B)1 C)9 D)0

32.若int a[5], *p=a;并在后面的语句中未改变p的值,不能表示a[1]地址的表达式为( A)a++ B)p++ C)a+1 D)p+1

33.下列关于指针定义的描述,错误的是( ) 。

A)在定义指针变量时,标识符前的“*”号表示后面的指针变量所指向的内容。 B)指针变量的类型与它所指向的变量类型一致。 C)指针变量的命名规则与标识符相同。 ) 。

3 / 7

D)指针是一种变量,该变量用来存放某个变量的地址值。 34.以下程序段的运行结果是( ) 。 int a[5]={2,4,6,8,10}, *p; p=a+1; printf(“%d”,p[2]);

A)8 B)10 C)随机值 D)2

35.若有定义 float x;,定义指针变量 p 并使其指向变量 x 的语句正确的是( ) 。 A) float *p=&x; B) float p=&x; C) float &p=&x; D) float p=*x; 文档收集自网络,仅用于个人学习 36.下面程序段的运行结果是( ) 。 char *s=“abcde”; s+=2;

printf(“%c”,*s);

A)cde B)c C)abcde D)无确定的输出结果 37.当说明一个共用体变量时,系统分配给它的内存是( ) 。

A)所有成员所需内存量的总和 B)成员中第一个成员所需内存量 C)成员中占内存最大者所需的容量 D)成员中最后一个成员所需的内存量 38.设有如下定义: struct student { int age; float score; } s1, *p; p=&s1;

对结构体成员正确的引用是( ) 。

A)student.age; B)s1->age; C)p.student.age; D)(*p).age; 文档收集自网络,仅用于个人学习 39.C 语言中对文件的存取是按( )为单位的。 A)字节 B)字符串 C)位 D)文件总容量

40.要打开一个已存在的用于读写的非空文本文件“score.txt” ,正确的语句是( )A)fp=fopen(\ B)fp=fopen(\文档收集自网络,仅用于个人学习 C)fp=fopen(\ D)fp=fopen(\文档收集自网络,仅用于个人学习 二、阅读下面各程序,写出运行结果(每小题 5 分,共 30 分) 1.#include }

main() { int i; for (i=0;i<6;i++) { switch(i%3) 2.

{ case 0:printf(“%d”,i); #include case 2:printf(“%d”,i); main() default:printf(“%d”,i); { int a[10],i,s=0; } for(i=0;i<10;i++) } a[i]=i;

4 / 7

。 for(i=1;i<4;i++) main()

{ s=s+a[i]; { int i; printf(\ for (i=0;i<4;i++) } printf(”%d ”,fun(i)); } } 5.#include void fun(char *p) { char *q; q=p; while(*q!=’\\0’) 3. { (*q)++; #include q++; } int x,y; } void fun() main() { int a=20, b=10; { char a[]= “Program”; x=x+a+b; char *p=a+3; y=y+a-b; fun(p); } puts(a); main() } { int a=5, b=3; 6. x=a+b; #include y=a-b; main() fun(); { int i; printf(“%d,%d”,x,y); struct book } { char name[10]; 4. double price; #include }book_list[2]={{”English”,15.0},{”C”,3int fun(int n) 3.0}},*p; { static int x=1; p=book_list; x+=n; for (i=0;i<2;i++) return x; printf(”%lf ”,p[i].price); } } 三、填空题(每空 2 分,共 30 分)

1.程序的三种基本结构是顺序结构、选择结构和 【1】 。 2.C语言中正确的标识符是由 【2】 组成的。 3.在C语言程序中,对文件进行操作首先要 【3】 ,在使用结束之后要对文件实行 【4】 操作, 防止文件中信息的丢失。 文档收集自网络,仅用于个人学习 4.用操作符 【5】 可以求出操作数所需内存的字节数。 5.设有int x = 6>5?4>3?2:1:0;,变量x的值是 【6】 。 6.以下程序用于求出数组 a 中最小元素及其下标: #include main( )

{ int a[100], i ,min, p; for(i=0;i<=99;i++)

5 / 7

四川大学C程序设计方案期末考试

四川大学期C程序设计期末考试试题(B闭卷)(2008——2009课程号:909002020适用专业年级:学年第下学期)成绩:姓名:课序号:课程名称:程序设计C任课教师:学生人数:印题份数:学号:考试须知四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学
推荐度:
点击下载文档文档为doc格式
1w9mp043ra9d31q9p63i6j6mw9sjhs00ds5
领取福利

微信扫码领取福利

微信扫码分享