内容正文:
九江理工学校2022-2023学年度下学期
《C语言程序设计基础》期末考试 试卷
题 序
一
二
三
四
总 分
得 分
班级: 姓名: 学号:
选择题(每空3分,共45分)
-个完整的C源程序是 ( B )
A、要由-个主函数(或)-个以上的非主函数构成
B、由-个且仅由-个主函数和零个以上(含零)的非主函数构成
C、要由-个主函数和-个以上的非主函数构成
D、由-个且只有-个主函数或多个非主函数构成
下列描述中不正确的是 ( C )
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出
C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符""=""对字符型数组进行整体赋值
下列说法中正确的是 ( B )
A、在switch语句中-定要使用break语句
B、在switch语句中不-定要使用break语句
C、break语句是switch语句的-部分
D、break只能用于switch语句中
下面正确的整型常量是 ( D )。
A.009 B.x789 C.2e3 D.900
在C语言中,要求运算数必须是整型的运算符是 ( C )。
A、/ B、++ C、*= D、%
若有以下程序段:
“int c1=1,c2=2,c3;c3=1.0/c2*c1;”,
则执行后,c3中的值是 ( A )
A、0 B、0.5 C、1 D、2
表示关系x<=y<=z的c语言表达式为 ( A )
A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)
C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)
对于基类型相同的两个指针变量之间,不能进行的运算是
( C )
A) < B) = C) + D) -
以下程序段的输出结果是 ( C )
int x=3;
do { printf(""%3d"",x-=2);} while(!(--x));
A) 1 B) 3 0 C) 1 -2 D) 死循环
设有 int a = 1,b=2,c =3, d =4, m=2, n=2;
执行(m= a>b)&&(n=c>d)后n的值为: ( B )
A)1 B )2 C)3 D)4
设有如下定义:
int x=10,y=3,z;
则语句printf(""%d
"",z=(x%y,x/y)); 的输出结果是 ( D )
A) 1 B) 0 C) 4 D) 3
"用十进制数表示表达式:12/012的运算结果是( A )
A)1 B)0 C)14 D)12
sizeof(float)是 ( C )
A.-种函数调用 B.-个不合法的表示形式
C.-个整型表达式 D.-个浮点表达式
在C语言中,合法的字符常量是 ( B )
A) '\084' B) '\x43' C) 'ab' D) ""\0""
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 ( D )
A) 3 B) 6 C) 10 D) 20
填空题(每空2分,共10分)
定义值为 2016的符号常量 VER 的命令是: #dcfineVER2016。
格式转换说明符要与输入地址列表中的变量 对应 .
表达式 5/2的值和表达式(double)5/2的值分别是 2 、2.500000。
若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值
为 1 。
"用十进制数表示表达式:12/012的运算结果是 1 。
判断题(每题2分,共10分)
在一个函数内定义的变量只能在本函数范围内有效。 (√)
对于“do{循环体}while(循环条件);”,这个循环结构有可能一次循环体的内容都无法执行。 (×)
输入项可以是一个实型常量,如:scanf(""%f"".3.5). (×)
当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(""%4.2f"",&f); (×)
当输入数据时,必须指明变量地址,例如: scanf(""%f"",&f); (√)
阅读程序题(每题5分,共20分)
1. 下面程序段的运行结果是 A 。
int a=1,b= 2,c=2,t;
while(a<b<c)
{
t= a;a= b;
b=t; c--;
}
printf(""%d,%d,%d"",a,b,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
2. 下面程序段的运行结果是 C 。
double d=3.2;
int x=1.2,y;
y=(x+3.8)/5.0;
printf(”%d
",d*y);
A、3 B、3.2 C、0 D、3.07
3. 下面程序段的运行结果是 A 。
main()
{
int x=0.5;
char z='a';
printf(""%d
"", (x&&1)&&(z<'z') );
}
A) 0 B) 1 C) 2 D) 3
4. 下面程序段的运行结果是 A 。
main0
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<i;j++) s+=a[i][j];
printf(""%d
"",s);
}
A) 14 B) 19 C) 20 D) 21
五、编程题(共15分)
1、程序的功能是从键盘输入1行字符,统计其中有多少个单词,单词之间用空格分隔。
1、答案:
#include〈stdio. h>
void mainO
{ char s[80],c1,c2='';
int i=0,num=0;
gets(s);
while(s[i]!='\0')
{ c1=s[i];
if(i==0) c2='';
else c2=s[i-1];
if(c1!='' && c2=='') num++;
i++; }
printf("There are %d words.
",num); }
学科网(北京)股份有限公司
$$