石家庄铁道大学2018 年春季学期2017 级本科班期末考试试卷(A)C 语言程序设计B期末考试
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【B】if(x==y) x+y;
【C】if(x!=y) scanf("%d", &x);x++; else scanf("%d", &y); 【D】if(x<y) {x++;y++;}
9.设有程序段
int m=0; while (m=100) m=m++;
则下面描述中正确的是(
)。
【A】while 循环执行 100 次
else if(x<70) m=2;
else if(x<80) m=3;
else if(x<90) m=4;
else if(x<100) m=5; switch 语句:
第5页共6页
switch( 【3】 ) {
【4】 : m=5;break; case 8: m=4;break; case 7: m=3;break; case 6: m=2;break; default : m=1; } 3.以下程序的功能是:输入两个整数,求它们中的最大值。请补充程序完整。 #include <stdio.h> int max(int m,int n) { return m>n?m:n ; } int main() { int a,b,m; printf("请输入两个整数:"); scanf("%d%d",&a,&b); m= 【5】 ;//调用函数 printf("两个整数的最大值为:%d",m); return 0; }
【B】循环是无限循环 【C】循环体语句一次也不执行
【D】while 循环执行 99 次
10.已知 ASCII 表中,字符'0'~'9'的 ASCII 值依次增大,且字母 A 的 ASCII 码为十进
制数 65,则定义 char ch='A'+'6'-'2';后,ch 中的值为(
)。
【A】D
【B】E
【C】C
【B】调用该函数时的主调函数类型决定
【C】调用该函数时系统临时决定
【D】在定义该函数时所指定的函数类型所决定
20.若指针 p 已经指向某个变量 x,则(*p)++相当于(
)。
【A】p++
【B】&x++
【C】*(p++)
【D】x++
二、阅读程序选择题(共 10 分,每题 2 分)
1.以下程序运行时,输入的值在( )范围时才会有输出结果。
sum=sum+score[n][k];
}
ave=sum/4.0; printf(“第%d 个学生的成绩平均分为:%f\n”,n+1,ave);
}
return 0;
} 2.根据以下 if 语句写出与其功能相同的 switch 语句(x 为值在 0~99 之间的整数)。
if 语句:
if (x<60) m=1;
【D】不确定
11.设有 int x=11;则表达式(x++*1/3)的值是(
)。
【A】3
【B】4
【C】11
【D】 12
12.以下叙述正确的是(
)。
【A】break 语句只能用于 switch 语句中 【B】continue 语句的作用是:使程序的执行流程跳出包含它的所有循环
【C】break 语句只能用在循环体内和 switch 语句体内
—
—
—
—
—
—
—
—
石家庄铁道大学 2018 年春季学期
—
—
— —
2017 级本科班期末考试试卷( A)
—
— —
课程名称: C 语言程序设计 B(闭卷)任课教师:
考试时间: 120 分钟
— 考试性质(学生填写):正常考试( )缓考( )补考( )重修( )提前修读( )
—
班级:
— 密
题号 一
二
三
四
五
六
七 总分
第4页共6页
【4】 。 3.设所有变量均为整型,则表达式( a = 2 , b = 5 , a++ , b++ , a + b )的值为 【5】 。 4.设 y 是 int 型变量,请写出判断 y 为奇数的关系表达式 【6】 。
5.有如下程序段,其运行结果是 【7】 。 char *s="Success"; s+=3; printf("%s\n",s);
【D】'*/' 和 '/*'
—
— 4.定义 char c; 则以下赋值语句错误的是(
)。
— 【A】c = 67; — 无 【C】c = '\67';
【B】c = "C"; 【D】c = 2 + 'A';
— 5.若 a 是基本整型变量,c 是单精度实型变量,则输入语句( — — 【A】scanf("%d,%f", &a, &c);
)。
【A】1,1
【B】0,1
【C】1,0
【D】0,0
16.若有说明语句:int a[][3]={1,2,3,4,5,6};则 a 数组第一维的大小是(
)。
【A】1
【B】2
【C】3
【D】无确定值
17.数组定义为 int a[3][2]={0, 1, 2, 3, 4, 5},数组元素(
【A】a[3][2]
10000≤profit
提成 25%。
编程输入某月利润,计算并输出员工本月薪水。
2.求一个 5*5 矩阵主对角线元素之和,要求矩阵各元素由键盘输入。
3.求1 1 1 1 ... 1 的值。
246
50
4.定义结构体描述 10 名学生的信息,每名学生的信息包括学号、姓名和大学英语
成绩,请编写程序输出大学英语成绩在 60 分以下的学生信息。(要求:学生的学号,
— 【A】do-while 的循环体至少无条件执行一次
— —
【B】while 的循环控制条件比 do-while 的循环控制条件严格
—
第1页共6页
—
【C】do-while 允许从外部转到循环体内
【D】do-while 的循环体不能是复合语句
8.下面语句中,( 【A】if(x>y);
)中的 if 语句是错误的。
【A】11
【B】4
【C】5 )。
【D】20
【B】12 13 14 【D】12 12 12
【C】8
【D】9
三、填空题(共 10 分,每空 1 分)
1.结构化程序由 【1】 、 【2】 、 【3】 三种基本结构组成。 2.有以下定义 int m = 5,y = 2;则计算表达式 y += y -= m *= y 后的 y 值是
printf("%d\n",strlen(str2));
}
【A】2
【B】4
4.运行以下程序,其输出结果是(
#include <stdio.h> int f(int a) { auto b=0;
static c=3; b=b+1; c=c+2; return a+b+c; } void main() { int i,a=6; for(i=0;i<3;i++) printf("%d ",f(a)); }
—
满 分 30
10
10
10
40
100
—
—
得分
—
封
阅卷人
—
— ★ 注:所有题目在答题纸上作答 ,答在试卷上无效
—
— 线
一、单项选择题(共 30 分,每题 1.5 分)
—
— 1.以下叙述中正确的是(
)。
— —
【A】构成 C 程序的基本单位是函数
内 【B】可以在一个函数中定义另一个函数
— —
【C】main()函数必须放在其他函数之前
二维数组中,请补充程序,实现计算出每位学生的平均分并输出计算结果。
#include <stdio.h> int main()
{ int n,k;
float score[10][4],sum,ave ;
for(n=0;n<10;n++ )
{
sum= 【1】
;
for(k=1;k<=4;k++)
{ scanf(“%f”, 【2】 );
五、编程题(共 40 分,每题 10 分)
1.某公司员工的保底薪水为 500,某月所接工程的利润 profit(整数)与利润提成的
关系如下:
profit<1000
没有提成;
1000≤profit<2000
提成 10%;
2000≤profit<5000
提成 15%;
5000≤profit<10000
提成 20%;
)是错误的。
— 【B】scanf("d=%d, c=%f", &a, &c);
效 —
【C】scanf("%d%f", a, c);
学号:
— 【D】scanf("%d%f", &a, &c);
— —
6.表达式(
)的值是 0。
— 【A】5/6
【B】'a'<'b'
【C】7%5
【D】2/5.0
— —
7.C 语言中 while 和 do-while 循环的主要区别是_______。
2.运行以下程序,其输出结果是( )
#include <stdio.h>
void main()
{ int a[3][3]={{3,4},{5,6},{7,8}};
int i,j,s=1;
for(i=1;i<3;i++)
for(j=0;j<i;j++)
s+=a[i][j];
printf("%d\n",s);
【D】在循环体内使用 break 语句和 continue 语句的作用相同
13.C 语言中运算对象必须是整型的运算符是(
)。
【A】%
【B】/
【C】=
【D】<=
14.设 int x=1,y=1; 表达式(!x||y--)的值是(
【A】0
【B】1
【C】2
)。 【D】-1
15.二维数组的第一个元素的行下标和列下标是(
姓名和成绩信息要在程序运行时输入)
第6页共6页
}
【A】14
【B】15
【C】20
【D】21
3.以下程序的运行结果是( )
#include<stdio.h>
#include<string.h>
void main()
{ char str1[20]={'a','b','\0','c'}, str2[20];
strcpy(str2,str1);
第3页共6页
— 【D】所有被调用的函数一定要在调用之前进行定义
姓名:
— 2.以下选项中不合法的标识符是(
)。
答
— 【A】print
【B】FOR
【C】&a
【D】_00
— 3.C 语言程序中可以对程序进行注释,注释部分必须用(
—
— 【A】'{' 和‘}'
【B】'/*' 和 '*/'
)符号括起来?
题 【C】'[' 和 ']'
6.从键盘输入一行含有空格的字符串到字符数组可以通过 【8】 字符串函数实现。 7.ch 是字符变量,写出判断 ch 为英文字母的表达式是 【9】 。 8.在 C 语言中可以利用 【10】 将一个表达式的值转换成指定的类型。
四、阅读程序填空题(共 10 分,每空 2 分)
1.以下程序的功能是:按顺序输入 10 名学生 4 门课程的成绩并存入 score[10][4]
【A】12 14 16
【C】12 15 17 5.#include <stdio.h> long fun(int n){
long s; if((n==1)||(n==2))
s=2; else
s=n+fun(n-1); return (s); } void main(){ long x; x=fun(4); printf("%ld\n",x); }
#include <stdio.h>
void main()
{ int x;
scanf("%d", &x);
if(x<=3) ;
else if(x!=10) printf("%d\n", x); }
【A】不等于 10 的整数
【B】大于 3 且不等于 10 的整数
【C】大于 3 或等于 10 的整数 【D】小于 3 的整数
【B】a[2][1]
)的值为 5。
【C】a[2][2]
【D】a[2][3]
18.将两个字符串连接起来组成一个字符串时,选用函数(
)。
【A】strlen( )
【B】strcpy( )
【C】strcat( )
【D】strcmp( )
19.C 语言规定,函数返回值的类型是由(
)。
第2页共6页
【A】return 语句中的表达式类型决定的