中国计量大学2022年计算机C语言期末测试卷
本试卷为中国计量大学2022年计算机C语言期末测试卷,题目包括:单项选择题,判断题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
计算机C语言期末测试卷
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、设"int x=2,y=1; ",则表达式(!x || y--)的值i是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( D )
3、以下能正确定义字符串的语句是________。
( B )
4、有以下程序
#include <stdio.h>
void fun( int *a,int *b)
{
int *c;
c=a;
a=b;
b=c;
}
main()
{
int x=3, y=5, *p=&x, *q=&y ;
fun(p,q);
printf("%d,%d,",*p,*q);
fun(&x,&y);
printf("%d,%d\n",*p,*q);
}
程序运行后输出的结果是________。
( A )
5、设有如下程序段 char s[20]= "bejing",*p; p=s; 则执行p=s; 语句后,以下叙述正确的是________。
( A )
6、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是________。
( C )
7、下面程序段的输出结果是 __________.
x=3;
do
{
y=x--;
if (!y)
{
printf("*");
continue;
}
printf("#");
}
while(x=2);
( A )
8、下列描述中正确的是________。
( D )
9、设int f (int); 和int g(int); 是函数f和g的原形,以下将f作为语句调用的是______ 。
( B )
10、若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是________。
( C )
11、设有如下说明
typedef struct st
{
long a;
int b;
char c[2];
}
new;
则下面叙述中正确的是______。
( D )
12、在c语言中,while和do…while循环的主要区别是________。
( A )
13、下面程序的运行结果是
#include<stdio.h>
main()
{
static char a[]="languagef" ,b[]="programe";
char *p1,*p2;
int k;
p1=a;
p2=b;
for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
( A )
14、以下程序的输出结果是 long fun(int n) {
long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;
}
main() {
printf("%ld\n",fun(3));
}
( D )
15、以下语句段执行后的输出结果是________。
#include<stdio.h>
main()
{
int k=3;
if(k) printf("###") else printf("&&&&");
}
( C )
16、下列各数据中,( ) 最小。
( D )
17、若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。
( B )
18、若要判断 char 型变量 c 中存放的是否为小写字母,以下正确的表达式是________。
( D )
19、c语言中,switch后的括号内表达式的值可以是________。
( B )
20、有语句char str1[10],str2[10]={"china"};
则能将字符串china赋给数组str1的正确语句是________。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、在c程序中,max和MAX是两个不同的变量。
( T )
2、在多层循环中,continue语句只结束本次循环,而不是终止整个循环的执行。
( T )
3、c语言约定'\0'不计入字符串的长度。
( T )
4、如果字符串常量所包含的字符个数等于数组长度,则在整体输出字符数组中的字符串时,会跟出一些不可预见的字符。
( T )
5、十进制转换成二进制可以采用除2取余的方式。()
( T )
6、省略else的if语句的一般形式如下,若表达式的值为"真",则执行语句1; 否则,就什么也不做。if (表达式) 语句1
( T )
7、在c语言中,可以将主调函数放在被调函数的后面,省略函数的声明。
( T )
8、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件。
( F )
9、c语言中输入与输出操作都是由自定义函数来实现的。
( F )
10、在标准c中,在函数printf 格式说明部分的字符都是以转义字符处理。()
三、编程题 (共3题,每题0分,共计40分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、编写程序: 输入三个整数x,y,z,请把这三个数由小到大输出。
3、有以下学生信息,使用结构体数组存储这些信息
struct student{
int num;//学号
int computer; //计算机成绩
}s[5]={{101,75},{103,80},{104,85},{106,90}};
再输入一条新记录,插入到结构体数组中,让5条记录按计算机成绩升序有序。
【输入形式】2个数据都使用空格分隔
【输出形式】分五行输出数据,每行数据均使用空格分隔
【输入样例】102 88
【输出样例】每行数据均使用一个空格分隔,分五行输出
101 75
103 80
104 85
102 88
106 90
相关标签:
- C语言
- 中国计量大学
- 期末测试卷