内容正文:
(
★★
密
★★★
封
★★★
线
★★★
内
★★★
不
★★★
要
★★★
答
★★★
题
★★★★
·
·
·
·
·
线
·
·
·
·
·
·
·
·
·
·
封
·
·
·
·
·
·
·
·
密
·
·
·
·
·
·
·
)
(
★
题
★★★
答
★★★
要
★★★
不
★★★
内
★★★
线
★★★
封
★★★
密
★★★★
·
·
·
·
·
线
·
·
·
·
·
·
·
·
·
·
封
·
·
·
·
·
·
·
·
密
·
·
·
·
·
·
·
:
号
考
:
名
姓
:
级
班
)
冷水滩职业学校2023年上学期高二期末考试
《C语言程序设计》
时量:120分钟,总分:120分
一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题
共 20分,每小题 2分)
1、下列格式字符中用来表示实数的是( )。
A.%s B.%f C.%c D.%u
2、下列预编译指令中用于引入输入输出功能的是( )。
A. #include<string.h>
B. #include<stdlib.h>
C. #include<stdio.h>
D. #include<math.h>
3、下列哪条语句的含义是将输入的字符输出( )。
A. putchar(getchar());
B. getchar(putchar());
C. puts(gets());
D. gets(puts());
4、下列函数声明的语句错误的是( )。
A. float add(float x, float y);
B. float add(float, float);
C. float add(x, y);
D. extern float add(float, float);
5、下列选择结构的叙述错误的是( )。
A. 一个else子句必有一个if子句与之匹配。
B. 一个if子句必有一个else子句与之匹配。
C. if语句中可以嵌套switch语句。
D. switch语句中可以嵌套if语句。
6、( )语句表示结束本轮循环,而不是结束整个循环。
A.default B.goto C.break D.continue
7、下列有关循环的描述正确的是( )。
A. while循环可至少执行一次循环体中内容。
B. 凡用while循环能完成的,用for循环都能实现。
C. do-while循环语句的末尾可以省略分号。
D. 3种循环结构不可用来处理同一问题,不能互相代替。
8、下列语句中有语法错误的是( )。
A. for(;;) if(1) break;
B. int a=1; do a++; while(1);
C. for(;;) if(1) else break;
D. int a=1; while(1) a++;
9、设有字符串str1,str2已定义,下列串操作语句错误的是( )。
A. strlen(str1,str2);
B. strcat(str1,str2);
C. strcpy(str1,str2);
D. strcmp(str1,str2);
10、设有整型变量a=2,b=2,执行下列if语句后a的结果为4的是( )。
A. if(a>b) a+=b; else a++; b++;
B. if(a>b) a+=b; else if(b>a) a+=b;
C. if(a>b) a+=b; if(b>a) b+=a;
D. if(a>b) a+=b; else a+=b;
二、综合应用题(每空2分,共10分)
11、阅读程序,写出运行结果
int main(){
unsigned int a=1,b=2;
if(a<=b)
if(a>=b)a++;
else b++;
else switch(a){
case 1:if(a>=b)b++;else a++;break;
case 2:if(a<=b)a++;else b++;break;
}
printf("%u %u
",a,b);
return 0;
}
12、阅读程序,写出运行结果
int main(){
int n=5,a;
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
for(int k=j;k<n;k++)
if(i==j||a==k)a--;
else a+=2;
printf("%d",a);
return 0;
}
三、程序分析题(每空5分,共70分)
(1)阅读程序,写出运行结果(每空5分,共20分)
13、
int val(int d){
if(d%2) if(d>2) return d+=1;
else return d+=2;