新疆农业大学2022年C语言期末预测卷
本试卷为新疆农业大学2022年C语言期末预测卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末预测卷
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、执行下列程序后,变量a,b,e的值分别是________。 int x--5,y=4; int a,b,e; a=(--x==y++)?x; ++y; b=++x; c=y;
( B )
2、若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是________。
( B )
3、以下正确的描述是________.
( D )
4、以下程序的输出结果是________。
main( )
{
int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
( D )
5、以下不正确的 c 语言标识符是______。
( C )
6、在c语言中,以下一组运算符中,优先级最高的运算符是______。
( C )
7、设有如下定义:
struct sk
{
int n;
float x;
} data,*p;
若要使p指向data中的n域,正确的赋值语句是________。
( D )
8、下列描述中,正确的一条是______。
( C )
9、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是________。
( D )
10、已知英文字母a的十进制ascii码值为65,那么a的十进制ascii码值为______。
( C )
11、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
( D )
12、下列是多行注释的符号是________。
( A )
13、下面程序的输出结果是_______。
f1(int x)
{
int y;
y=x+x;
return(y);
}
f2(int a ,int b)
{
int z;
z=f1(a*b);
return(z);
}
main( )
{
int a=2,b=5,c;
c=f2(a,b);
printf("%d",c);
}
( D )
14、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( A )
15、有以下程序
main()
{
int a=15,b=21,m=0;
switch(a%3)
{
case 0:m++;
break;
case 1:m++;
switch(b%2)
{
default:m++;
case 0:m++;
break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是______。
( A )
16、以下描述错误的是________。
( C )
17、以下能对一维数组a进行正确初始化的语句是________。
( C )
18、若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为______。
( B )
19、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
( A )
20、结构体类型的定义允许嵌套是指()。
二、判断题 (共10题,每题2分,共计20分)
( F )
1、在 c 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )
( F )
2、当#include后面的文件名用双引号""括起,仅搜索当前目录。
( T )
3、c语言约定'\0'不计入字符串的长度。
( T )
4、函数调用时,如果把数组名作实参,则形参数组元素的值发生变化时,实参数组元素的值同时发生变化。
( T )
5、当函数的类型为int型时,vc++允许省略函数声明。
( T )
6、if(a=5) 是允许的。
( F )
7、在循环中使用break语句或者continue语句,其作用是相同的。
( T )
8、c语言在判断一个表达式是否为真时,以非0值代表"真",以0值代表"假"
( F )
9、在switch 语句中必须使用break 语句
( F )
10、c语言中允许嵌套定义函数。
三、填空题 (共5题,每题4分,共计20分)
1、局部变量的作用域是从______的位置起,到函数结束止。
2、在定义函数时函数名后面括号中的变量名称为________。
3、已知char str[]="student",则strlen(str)的值为________。
4、开发一个c程序要经过编辑、编译、()和运行4个步骤、
5、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
四、程序分析题 (共4题,每题5分,共计20分)
1、以下sum函数的功能是计算下列级数之和。 s=1+x+x2/2!+x3/3!+........+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n )
{
int i;
double a,b,s;
________
for( i=1;i<=n;i++)
{
a=a*x;
b=b*i;
s=s+a/b;
}
return s;
}
2、以下程序的输出结果是_____________。
main()
{
int a;
printf("%d\n",(a=3*4,a*5,a+5));
}
3、下列程序段的运行结果是_____。 char s1[20]="abcdef", s2[5]="abc"; strcpy(s1,s2); printf("%c", s1[5]);
4、以下程序的输出结果是_____________。
main()
{
float x;
printf("%.4f\n",(x=2*4,x+0.5));
}
五、编程题 (共3题,每题0分,共计50分)
1、编写函数 void del(char *s,char c),其功能是在 s 所指字符串中删除与变量 c 相同的 字符,并设计主函数实现: (1)从键盘输入字符串和指定被删除的字符; (2)调用 del()函数实现删除操作; (3)输出删除后的字符串。 说明:不允许使用除 gets和 puts之外的任何字符串处理库函数。
2、编写程序:求1+2!+3!+...+20!的和。
3、给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00
相关标签:
- C语言
- 新疆农业大学
- 期末预测卷