当前位置:
文档之家› 厦门理工学院2011年C语言期末考试试卷与答案
厦门理工学院2011年C语言期末考试试卷与答案
息
信
生
专业 系 装
考
06
级 班级
订
第 1 页 共 9 页
4、有程序片段 int a=2,b=1; if(a<b) a=3; b=3; 以下选项中正确的是: 【4】 。 A、 a=2 b=1 B、 a=2 b=3 C、 a=3 b=3 D、 a=3 b=1 5、语句 if (i ) i++; 中的条件表达式 i 等价于【5】 。 A、 i==0 C、 i!=0 B、 i!=1 D、 -i
一、单项选择题
题号 答案 题号 答案 1 B 11 C 2 D 12 A 3 C 13 D 4 B 14 B 5 C 15 C 题号 答案 题号 答案 6 D 16 D 7 D 17 B 8 A 18 A 9 B 19 A 10 C 20 C
二、程序填空题
NO. 1 答 (1)sum=0 (2)return sum (3)sum(m) ; 2 (4)x=-x (5)y<0(或者 y<=0) 4 案 NO. 3 答 (6)struct stu (7)stu[i].score (8)1 (9)e (10)result=result*b 案
厦门理工学院期末考试卷
20-20 学年 第 1 学期 课程名称
C 语言程序设计
专业 级 班级
试卷 卷别
A B
闭卷
√
□
√
考试 方式
学号
开卷 □
本试卷共 三 大题( 8 页),满分 100 分,考试时间 120 分钟。 请在答题纸上作答,在试卷上作答无效。
1、有程序片段 int a=7,b=5,c,d; c=a/b; d=a%b; 以下选项中正确的是: 【1】 。 A、 c=1.4 d=1 B、 c=1 d=2 C、 c=2 d=1 D、 c=1 d=1.4 2、若有程序段: int a = 5; int *p = &a; /* 行 1 */ *p = a; /* 行 2 */ 对行 1 和行 2 的正确解释是【2】 。 A、 行 1 和行 2 中的*p 含义相同,都表示给指针变量赋值。 B、 行 1 和行 2 执行的结果都是把变量 a 的地址赋给指针变量 p。 C、 行 1 是在对 p 进行说明的同时进行初始化,使 p 指向 a; 行 2 是将变量 a 的值赋给指针变量 p; D、 行 1 是在对 p 进行说明的同时进行初始化,使 p 指向 a; 行 2 是将变量 a 的值赋给指针变量 p 所指的变量; 3、结构化程序设计的 3 种基本结构是【3】。 A、 顺序结构、选择结构、转移结构 C、 顺序结构、选择结构、循环结构 B、 分支结构、等价结构、循环结构 D、 多分支结构、赋值结构、等价结构
学号 栏 息 姓名 专业 系 06 级 班级 考 生 信
装
订
线
第 7 页 共 9 页
四、设计题: (本题共 3 小题,每题 10 分,共 30 分)
1.有一个分段函数如下
x 3 1 y 4x
x0 x0
写一段程序,输入 x,输出 y。 2.编程实现计算 1!+2!+„+10!的值。 3. 写一个程序求 3*3 矩阵二维数组上三角元素和 数组如下:1 2 3 4 5 6 7 8 9 上三角元素和为 1+2+3+4+5+7=22,要求必须使用循环.
三、程序阅读题 1、12 2、6566456
3、0
三、设计题
第 8 页 共 9 页
1.解:
#include<stdio.h> void main() { int x,y; printf("please input x"); scanf("%d",&x); if(x>=0)
2.解:
1分 1分 1分 1分 1分 2分
6、C 语言中规定,if 语句的嵌套结构中,else 总是与【6】配对。 A、 与最近的 if 配套 B、 与第一个 if 配套 C、 按缩进位置相同的 if 配套 D、 与最近的且尚未配对的 if 配套 7、有程序片段 int i=1,n=1; for(;i<3;i++); { continue; n=n+i; } 程序运行后变量 n 的值为【7】 : A、 4 B、 3 C、 2 D、 1 8、有程序片段 int k=0; while(k=1) k++; 则 while 循环执行的次数是【8】 。 A、 无限次 B、 有语法错误,不能执行 C、 一次也不执行 D、 执行一次 9、已知:int a[2][3]; 则对数组元素的非法引用是【9】 。 A、 B、 C、 D、 a[0][2*1] a[1][3] a[4-3][0] a[1][2]
订
栏 姓名
x=22 x=23
息
13、若已定义:int *p, a ; ,则语句 p=&a ; 中的运算符&的含义是【13】 。 A、 按位与运算 B、 逻辑与运算 C、 取指针内容 D、 取变量地址 14、如果在用户的程序中要使用 C 库函数中的数学函数时,应在该源文件中使用 的 include 命令是【14】 。 A、 #include <string.h> C、 #include <stdio.h> 15、有程序片段 int a=1,b=2; a=a+b;b=a-b;a=a-b; printf(“%d,%d\n”,a,b); 以下选项中正确的是: 【15】 。 A、 1,1 B、 1,2 C、 2,1 D、 2,2 16、以下对二维数组 c 的声明正确的是【16】 。 A、 int c[3][ ]; C、 int c(2)(2); B、 int c(3,4); D、 int c[3][2]; B、 #include <math.h> D、 #include <ctype.h>
第 2 页 共 9 页
10、运行下面程序段时,编译提示第 2 行出错,其原因是【10】 。 void main( ) { char c1 = 'a' , c2 = '123' ; printf(" %c , %d\n " , c1 , c2 ) ; } A、 字符常量要写成 "a" 。 B、 '123'只能赋值给字符串。 C、 字符常量'123'长度太大。 D、 字符变量 c1,c2,不能在同一行中定义。
D、 30
第 4 页 共 9 页
二、程序填空题:
1. #include<stdio.h> unsigned sum(unsigned n) { unsigned i, _____(1)______ for(i=1;i<=n;i++) sum+=i; ______(2)______ } void main() { int m; clrscr(); printf("Please input a unsigned integer:"); scanf("%d",&m); while(m<0) { printf("Please input a unsigned integer:"); scanf("%d",&m); } printf("\nThe sum is %d\n", ______(3)_____ getch(); } 2.以下程序用来求两整数的绝对值和。请填空。 #include<stdio.h> void main() { int x,y; printf("Please input x,y:"); scanf("%d%d",&x,&y); if (x<0) (4) ; if ( (5) ) y=-y; printf("\n|x|+|y|=%d\n",x+y); }
学号
11、程序运行输出了错误的结果,可以排除下列哪一个因素【11】 。 A、 算法错误 C、 未通过编译 B、 运行时输入数据错误 D、 系统资源配置不当
线
12、有程序片段 int x=23; printf(“%d”,- -x); 以下说法中正确的是【12】 。 A、 输出 22 x=22 B、 输出 23 C、 输出 22 x=23 D、 输出 23
学号 栏 息 姓名 信
订
线
考
专业
06
级 班级
);
生
系
装
第 5 页 共 9 页
3.计算三个学生的总成绩和平均成绩,其中三个学生的成绩存储在一个结构体中。 #include <stdio.h> main() { struct stu { char name[10]; float score; }; _____(6)_____ stu[3]={"Mary",76,"John",85,"Tom",81}; int i=0; float total=0,aver=0; while(i<3) { total=total+ _______(7)_______ ; i++; } aver=total/3; printf("\ntotal=%.2f,aver=%.2f", total,aver); getch(); } 4.以下函数的功能是返回 b 的 e 次幂。例如,intPow(2,3)的值为 2*2*2。假定 e 是非 0 整数, b 是整数,请填空。 #include <stdio.h> int intPow(int b,int e) { int result,n; result= (8) ; /* 为 result 赋初值 */ for(n=0; n<___(9)_____; n++) (10) ; return result; } main() { printf(“2 的 3 次幂是:%d”,intPow(2,3)); }