内容正文:
江西省新余市工业科技学校2021-2022学年度下学期
《C语言程序设计基础》期末考试 试卷
题 序
一
二
三
四
总 分
得 分
班级: 姓名: 学号:
选择题(每题3分,共45分)
C语言规定,程序中各函数之间 ( A )
A) 既允许直接递归调用也允许间接递归调用
B) 不允许直接递归调用也不允许间接递归调用
C) 允许直接递归调用不允许间接递归调用
D) 不允许直接递归调用允许间接递归调用
在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是____类型 ( C )
A) void B) double C) int D) char
C语言程序的三种基本结构是____A______
A、顺序结构,选择结构,循环结构
B、递归结构,循环结构,转移结构
C、嵌套结构,递归结构,顺序结构
D、循环结构,转移结构,顺序结构
以下程序执行后sum的值是 ( C )
min()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf(""%d
"",sum);
}
A)15 B)14 C) 不确定 D)0
C语言规定,在一个源程序中main函数的位置( C )
A、必须在最开始 B、必须在系统调用的库函数的后面
C、可以任意 D、必须在最后
"用十进制数表示表达式:12/012的运算结果是( A )
A)1 B)0 C)14 D)12
设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是 ( D )
A)'a'&&'b' B)a<=b
C)a||b+c&&b-c D)!((a<b)&&!c||1)
以下程序运行后,输出结果是 ( C )
main( )
{ char *s=""abcde"";
s+=2;
print(""%ld
"",s);
}
A. cde B.字符c的ASCLL码值
C.字符C的地址 D.出错
以下选项中不能用作C程序合法常量的是 ( A )
A、1,234 B、’\123’
C、123 D、"\x7G”
以下对枚举类型名的定义中正确的是 ( B )
A)enum a={one,two,three};
B)enum a {one=9,two=-1,three};
C)enum a={""one"",""two"",""three""};
D)enum a {""one"",""two"",""three""};
下列运算符其优先级最高的是 ( 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
以下for语句构成的循环执行了( C )次。
# include<stdio.h>
#define N 1
#define M N+1
#define NUM (M+1)*M/2
main( )
{int i,n=0;
for (i=1;i<=NUM;i++)
n++;
printf(""%d"",n);
}
A、5 B、 6 C、 3 D、 9
"以下合法的赋值语句是( B )
A) x=y=100 B) d--;
C) x+y; D) c=int(a+b);
C语言中函数返回值的类型是由( D )决定。
A) return语句中的表达式类型
B) 调用函数的主调函数类型
C) 调用函数时临时
D) 定义函数时所指定的函数类型
判断题(每题2分,共20分)
在C语言中,有调用关系的所有函数必须放在同一个源程序文件中。 (×)
C语言是以函数为程序的基本单位的。 (√)
当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(""%4.2f"",&f); (×)
C语言本身不提供输入、输入语句,需要由库函数给出。(√)
在switch语句中不-定要使用break语句 (√)
break语句是switch语句的-部分 (×)
在不同的函数中可以使用相同名字的变量 (√)
函数中的形式参数是局部变量 (√)
在一个函数内定义的变量只在本函数范围内有效 (√)
在一个函数内的复合语句中定义的变量在本函数范围内有效 (×)
程序阅读题(每题5分,共25分)
说明:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
1. 以下程序中,while循环的循环次数是 D 。
main()
{ int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
……
}
A.1 B.10 C.6 D.死循环,不能确定次数
2. 以下程序的输出结果是是 B 。
main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf(""%d
"",t);
}
A) 3 B) 4 C) 1 D) 9
3. 以下程序中,while循环的循环次数是 D 。
#define M(x,y,z) x*y+z
main()
{
int a=1,b=2, c=3;
printf(""%d
"", M(a+b,b+c, c+a));
}
A) 19 B) 17 C) 15 D) 12
4. 以下程序的输出结果是是 A 。
main0
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++
;
case 2: a++;b++
;
}
printf(""a=%d,b=%d
"",a,b);
}
A、 a=2,b=1 B、 a=1,b=1
C、a=1,b=0 D、a=2,b=2
5. 以下程序的输出结果是是 D 。
#include""ctype.h""
space (char *str)
{
int i,t;char ts[81];
for(i=0,t=0;str[i]!='\0';i+=2)
if(! isspace(*str+i)&&(*(str+i)!='a'))
ts[t++]=toupper(str[i]);
ts[t]='\0';
strcpy(str,ts);
}
main( )
{
char s[81]={""a b c d e f g""};
space(s);
puts(s);
}
A、abcdeg B、 bcde
C、ABCDE D、 BCDEFG
四、编程题(共10分)
1. 下面程序的功能是计算 1至10之间的奇数之和及偶数之和。
答案:
# include <stdio.h>
#include <math.h>
main()
{ int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{ a+=i;
b=i+1 ;
c+=b; }
printf("偶数之和=%d
",a);
printf("奇数之和=%d
",c-11);
}
学科网(北京)股份有限公司
$$