吉林大学珠海学院-C语言试卷 - A卷

更新时间:2023-11-25 09:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2009 年 春 季学期 专业

《C语言程序设计》 期末试卷(A卷)

卷面总分:100分 答题时间:120分钟

专业 年级 班级 姓名 学号

题号 得分 一 二 三 四 五 总分 一、单项选择题(本题共30 个小题,每小题1分,共30分,请将答案代号填涂到机读卡上,在试卷上所写答案,视为0分)

1、以下叙述中错误的是( )。

A) C语言运算功能丰富

B)C语言可以不用编译就能被计算机识别执行

C) C语言允许直接访问物理地址,直接对硬件进行操作 D) C语言属于结构化的程序设计语言

2、在C语言中,整型常量的表示方法不包括( )。

A) 二进制 B) 八进制 C) 十进制 D) 十六进制 3、以下选项中不属于C语言的关键字的是( )。

A) typedef B) struct C) int D) CHAR 4、源程序要正确地运行,必须要有什么函数( )

A) printf函数 B) 自定义的函数 C) main函数 D) 不需要函数 5、这段程序中的变量是( ) #include #define PI 3.14 void main() {

int sum;

sum = 10 + 15;

printf(\ printf(\ }

A) 10 B) sum C) 15 D) PI

第 1 页 共 10 页

6、算法具有五个特性,以下选项中不属于算法特性的是( )。 A)有穷性 B)简洁性 C)可行性 D)确定性 7、字符型常量在内存中存放的是( )。

A)ASCII码 B)BCD码 C)内部码 D)十进制码 8、下面哪个表达式的值为4( )。

A)11/3 B)11.0/3

C)(float)11/3 D)(int)(11.0/3+0.5) 9、假设变量a和b已经定义为整型,指出下面错误的表达式( )。

A) a=a++ B) 5.6+6.2%3.1 C) 1&&2 D) a=1,b=2 10、该源程序执行后,输出结果是( )。

#include void main() {

int a; float b; a=4; b=9.5;

printf(\}

A) a=%d,b=%f\\n B) a=%d,b=%f C) a=4,b=9.50 D) a=4,b=9.5 11、以下的for循环是( )。

for(x=0,y=0;(y!=123)&&(x<4);x++);

A) 无限循环 B) 循环次数不定 C) 执行4次 D) 执行3次

12、从以下给出的表达式中选出与while(E)语句中的(E)不能等价的表达式(A) (!E==0) B) (E>0) || (E<0) C) (E!=0) D) (E==0) 13、C语言中,逻辑“真”等价于( )。

A)大于零的数 B)不大于零的整数 C)非零的数 D)非零的整数 14、以下程序的输出结果是( )。

#include main( )

{ int num=0; while(num<=2) { num++;

printf(“-\\n”,num); } }

A)1 B)1 2 C)1 2 3 D)1 2 3 4

第 2 页 共 10 页

15、下列变量名中合法的是( )。

A)B.C.Tom B)3a6b C)_6a7b D)$ABC

16、设有定义语句int c[4][3];,则以下对数组元素的引用形式中正确的是( )。

A) c[2+1][1-1] B) c[2,3] C) c[4][3] D) c[2+1,2]

17、若有定义语句double x[2][2]={0.0};则以下叙述正确的是( )。

A) 该语句存在语法错误

B) 该语句使二维数组x的所有元素初值都为0.0 C) 该语句只为数组元素x[0][0]赋初值为0.0 D) 该语句为数组元素x[2][2]赋初值为0.0

18、以下选项中,不是C语言合法字符串常量的是( )。

A) “\\121” B) ‘y=’ C) “\\n\\n” D) “ABCD\\x6d” 19、函数strcmp(“abc”,“x”)的返回值是( )。

A)小于0 B)等于0 C)大于0 D)不确定 20、下列函数定义中正确的是( )。 A) float cal(float x;float y) {return(x*y);}

B) float cal(float x,y) {return(x*y);} C) int cal(x,y) {float x,y; return(x*y);} D) int cal(x,y) float x,y;

{return(x*y);}

21、在函数的说明和定义时若没有指出函数的类型,则( )。

A)系统自动地认为函数的类型为整型 B)系统自动地认为函数的类型为字符型 C)系统自动地认为函数的类型为实型 D)编译时会出错

22、在int a[ ]={1,2,3,4}中,数组元素a[2]的值是( )。

A) 1 B) 2 C) 3 D) 4 23、在下面程序中,属于全局变量的是( )

#include struct student {

int num; char *name; char sex; float score;

}stu2,stu1={1002,\

第 3 页 共 10 页

main( ) { int n;

float s; stu2=stu1; n=stu1.num; s=stu2.score;

printf(\printf(\}

A)student B)stu2 C)n D)s 24、下面程序的输出结果是( )。

#include sub2(int n) {

return n+1; }

sub1(int n) { int i,a=0;

for (i=n; i>0; i--) a+=sub2(i); return a ; }

main( ) { int n=3;

printf (\ }

A) 5 B) 7 C) 8 D) 9

25、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(A)scanf(“%d”,pa); B)scanf(“%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa); 26、下面程序中,哪个变量的值保存在cpu的寄存器里( )。

#include int n=1000; main( )

{ static int sum=0; register int i;

for (i=1; i<=n; i++) sum+=i;

printf(\}

A) n B) sum

C) i D) 这段程序中没有寄存器变量

第 4 页 共 10 页

。 )

27、若有两个基本类型相同的指针p1,p2,则下列运算不合理的是( )。 A)p1+p2 B)p1-p2

C)p1=p2 D)p1==p2 28、为字符数组赋值,下列方法中错误的是( )。

A)char str[5]=”ok”; B) char str[5]; gets(str); C) char str[5];

scanf(“%s”,str); D) char str[5]; str=”ok”;

29、下面哪个是正确的引用结构体变量成员( )

struct student

{ int num; char name; } stu1,*p; p=&stu1;

A)stu1->.num B)*stu1.num

C)student.num D) p->num 30、下面程序的输出结果是( )。

#include main()

{ printf(\

A) 0 B)1

C)-1 D)NULL没定义,出错

二﹑判断题(本大题共 10 小题,每小题 2 分,共 20 分,请将“正确”用“A”表示,“错误”用“B” 表示,填涂到机读卡上,在试卷上所写答案,视为0分) 1( )C语言属于高级语言。

2( )关键字INT可以用来定义整型变量。

3( )若有char x;则 sizeof(x)和sizeof(char)两种描述中,二者都正确。 4( )数组元素作为函数的参数进行地址传递。 5( )在C语言中,076是一个十进制整数。 6( )结构体可以嵌套定义。

7( )do-while循环的特点是:先判断循环条件,再执行循环体语句。

8( )主函数中定义的变量比较特殊,属于全局变量,在整个程序中都是有效的。 9( )用C语言编程时,变量可以不定义,直接使用。

10( )定义结构体类型,说明了该类结构体数据的组织形式,在编译程序时系统会给结构体类型分配空间。

三﹑填空题(本大题共 4 小题,每小题 4 分,共 16 分,请将答案填写到下面表格内,不得修改原题和原程序,修改者视为0分,未将答案填写在表格内,视为0分)

第 5 页 共 10 页

第1题 第2题 第3题 第4题 第1题 第2题 第3题 第4题 1、

字母 顺序 数字 选择 for %d 下划线 循环 本层循环 a[i+1] 数字 if 本次循环 t

do-while include C语言规定,标识符只能由___①___﹑___②___﹑___③___3种字符组成,而且,第一个字符不能是___④___。

2、结构化程序设计的三种基本结构是___①___结构﹑___②___结构和___③___结构,能够实现选择结构的语句有___④___语句和switch语句。

3、在C语言中,实现循环的语句有:if-goto语句﹑while语句﹑___①___语句和___②___语句,break语句在循环控制中用于结束___③___﹑continue语句在循环控制中用于结束___④___。 4、下面程序的功能是:用冒泡排序法将5个数字从小到大排列,请填空: #___①___ #define N 5 main( )

{ int a[N];

int i,j,t,exchange;

printf(\ for (i=0; i

scanf(\②___\

for (j=1; j<=N-1; j++) /*控制比较的趟数 */ { exchange=0;

for (i=0; ia[i+1]) { t=a[i];

a[i]= ___③___; a[i+1]= ___④___; exchange=1; }

if (exchange==0)break; }

printf(\ for (i=0; i

printf(\ }

四﹑读程序写结果(本大题共 5 小题,每小题 2 分,共 10 分,请将答案填写到下面表格内,未填写在表格内,视为0分) 第1题 第2题 第 6 页 共 10 页

第3题 第4题 第5题 1、写出该程序运行结果 #include main()

{ int a=10,y=0; do

{ a+=2; y+=a;

printf(“a=%d y=%d\\n”, a,y); if(y>20) break; } while(a=14); }

①__________ ②__________

2、写出该程序运行结果

#include main()

{ void increment(void); increment(); increment(); }

void increment(void) { static int x; x++;

printf(“%d\\n”,x); }

①__________ ②__________

3、写出该程序运行结果

#include “stdio.h” int age(int n) { int c;

if (n==1) c=10; else c=age(n-1)+2; return(c ); }

main() {

printf(“%d”,age(4));

第 7 页 共 10 页

printf(“%d”,age(5)); }

①__________ ②__________

4、写出该程序运行结果

#include main() {

int *point1,*point2,*point; int a=1,b=2;

point1=&a,point2=&b; point=point1; point1=point2; point2=point;

printf(“%d,%d\\n”,a,b);

printf(“%d,%d”,*point1,*point2); }

①__________ ②__________

5、写出该程序运行结果

#include main()

{ struct info

{ char name[20];

int year,month;

}person_1;

strcpy(person_1.name,\ person_1.year=1961; person_1.month=9;

printf(\

printf(\}

①__________ ②__________

五﹑程序设计(本大题共 4 小题,每小题 6 分,共 24 分)

1、输入整数x,根据x的值来确定y的值,若x>0,那么y=x,否则y=-x。 2、编写程序,求10的阶乘( 10!=1×2×3×??×10 )。 3、数组int a[5]={78,69,93,82,75},保存的是一个学生五门课的成绩,求其总分和平均分。

2

4、编写函数,求表达式x-5x+4的值,x由主函数输入。

第 8 页 共 10 页

2009年春季学期

《C语言程序设计》试题A卷 答案

一、选择题(本大题共 30 小题,每小题1分,共30分) 第1-10题 B A D C B B A D 第11-20题 C D C C C A B B 第21-30题 A C B D A C A D

二、判断题(本大题共 10 小题,每小题2分,共20分)

第1-10题

B A D C D A A B A B B A B B B B 三、填空题(本大题共 4 小题,每小4分,共16分)灰色底纹部分顺序任意

第1题 第2题 第3题 第4题 字母 顺序 do-while include 数字 选择 for %d 下划线 循环 本层循环 a[i+1] 数字 if 本次循环 t

四、读程序写结果(本大题共 5 小题,每小题 2 分,共 10 分)

第1题 a=12 y=12 a=16 y=28 第2题 第3题 第4题 第5题 1 16 1,2 Name:Liu De Hua 2 18 2,1 Birthday:1961.9

五、程序设计(本大题共 4 小题,每小题 6 分,共 24 分) 酌情按步骤给分

1、#include main( ) { int x,y;

printf(“please input x:”); scanf(“%d”,&x); if ( x>0) y=x;

else y= - x;

printf(“y=%d\\n”,y); }

2、#include main( )

第 9 页 共 10 页

{ int i,p=1;

for ( i=1; i<=10; i++) p*=i;

printf(\ }

3、#include main()

{ int i, sum=0,a[5]={78,69,93,82,75}; float ave;

for(i=0; i<5;i++) {sum+=a[i];} ave=sum/5.0;

printf(“sum=M\\n”,sum); printf(“ave=%5.1f”,ave); }

4、#include int fun(int x)

{ return x*x-5*x+4; } main() {

int x;

scanf(“%d”, &x);

printf(“x*x-5*x+4=%d\\n”,fun(x)); }

第 10 页 共 10 页

本文来源:https://www.bwwdw.com/article/rmst.html

Top