浙江中医药大学2022年计算机C语言模拟

本试卷为浙江中医药大学2022年计算机C语言模拟,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

计算机C语言模拟

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、若变量a、i已正确定义,且i已正确赋值合法的语句是________。
A、a==1
B、++i
C、a=a++=5
D、a=int(i)
(  B  )
2、设有以下程序
main( )
{
int n1,n2;
scanf("%d",&n2);
while (n2!=0)
{
n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为________。
A、892
B、8921
C、89
D、921
(  C  )
3、有以下程序
main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf("%c",&k);
switch(k)
{
case ‘0’: printf("another\n");
case ‘1’: printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是________。
A、another
number
B、another
number
another
C、another
number
number
D、number
number
(  A  )
4、若有定义语句: int a[4][10],*p,*q[4]; 且0<=i<4,则错误的赋值是________。
A、p=a
B、q[i]=a[i]
C、p=a[i]
D、p=&a[2][1]
(  B  )
5、若有以下定义 int x[10], *pt=x; 则对x数组元素的正确引用是________。
A、*&x[10]
B、*(x+3)
C、*(pt+10)
D、pt+3
(  D  )
6、在定义 int a[10]; 之后,对 a 的引用正确的是______。
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
(  C  )
7、在下列选项中,没有构成死循环的程序段是________。
A、int i=100;
for(;;) {
i=i%10+1;
if(i>10)
break;
}
B、while(1);
C、int k=0;
do
{
++k;
}
while(k<=10);
D、int s=12;
while(s);
--s;
(  B  )
8、c语言中的基本数据类型是________。
A、整型、浮点型、逻辑型、无值型和类类型
B、整型、字符型、浮点型、无值型和逻辑型
C、整型、浮点型、字符型、逻辑型和枚举型
D、整型、浮点型、逻辑型、无值型和指针型
(  A  )
9、以下结构体类型说明和变量定义中正确的是________。
A、typedef struct
int n;char c;REC;
REC t1,t2;
B、struet REC;
int n;char c;;
REC t1,t2;
C、typedef struct REC;
int n=0;char c='A';t1,t2;
REC t1,t2;
D、struct
int n;char c;REC;
(  D  )
10、下列关于boolean类型的叙述中,正确的是________。
A、可以将boolean类型的数值转换为int类型的数值
B、可以将boolean类型的数值转换为字符串
C、可以将boolean类型的数值转换为char类型的数值
D、不能将boolean类型的数值转换为其他基本数据类型
(  B  )
11、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
A、260
B、270
C、280
D、285
(  A  )
12、两次运行下面的程序,如果从键盘上分别输入3和2,则输出结果是________。
#include<stdio.h>
main() {
int x;
scanf("%d",&x);
if(x++>2)printf("%d",x);
else printf("%d\n",x--);
}
A、4和3
B、4和2
C、4和1
D、3和2
(  D  )
13、下面说明不正确的是________。
A、char a[10]="china";
B、char a[10],*p=a;p="china"
C、char*a;a="china";
D、chara[10],*P;P=a="china"
(  D  )
14、下面关于数组的初始化正确的是________。
A、chara[]='a','b','c'
B、chara[2]='a','b','c'
C、chara[2][3]='a','b','e','d','e','f'
D、chara[]="a","b","c"
(  A  )
15、关于程序模块化,以下叙述错误的
A、程序模块化可以提高程序运行的效率
B、程序模块化可以提高程序编制的效率
C、程序模块化可以提高程序代码复用率
D、程序模块化可以提高调试程序的效率
(  B  )
16、以下程序的输出结果是______。
main()
{
int a=5,b=4,c=6,d;
printf("%d\n",d=a>c?(a>c?a:c):(b));
}
A、5
B、4
C、6
D、不确定
(  D  )
17、设有下面的程序段:char s[]="china"; char *p=s; 则下列叙述正确的是____。
A、数组s中的内容和指针变量p中的内容相等
B、s和p完全相同
C、s数组长度和p所指向的字符串长度相等
D、*p与s[0]相等
(  B  )
18、若有以下定义:char s='\092'; 则该语句________。
A、使s的值包含1个字符
B、定义不合法,s的值不确定
C、使s的值包含4个字符
D、使s的值包含3个字符
(  C  )
19、以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);
()
A、是无限循环
B、循环次数不定
C、4次
D、3次
(  B  )
20、C语言中,逻辑"真"等价于
A、大于零的数
B、非零的数
C、大于零的整数
D、非零的整数

二、填空题 (共10题,每题2分,共计20分)

1、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:________ 。
2、以下程序运行后的输出结果是 ________ 。
main()
{
int x=0210;
printf("%x\n",x);
}
3、以下程序的输出结果是________ 。
#include <stdion.h>
#define M 5
#define N M+M
main()
{
int k;
K=N*N*5;
printf("%d\n",k);
}
4、c语言中free(p)的作用是释放由________所指向的内存区间。
5、c语言规定,不能使用c语言中的________做标识符。
6、if语句与_________语句一起可以构成循环结构。
7、下列程序段的运行结果是_____。intb=20,*q;
q=&b; printf("%d",*q);
8、c语言中与指针有关的两个运算符是________与*。
9、在c 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。
10、在scanf函数中,用符号______表示变量的地址。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:计算下列表达式:s=n!(n从键盘上输入)
2、编写程序:用结构体和函数处理学生成绩,学生信息包括:学号 姓名 3门课成绩 平均分
1)用input函数来输入数据和求各学生的平均成绩
2)用max函数来找平均分最高的学生
3)用print函数输出成绩最高学生的信息
3、任意输一行字符串(包括空格),求其长度(不用strlen函数)。