浙江财经大学2023年C语言期末模拟考试
本试卷为浙江财经大学2023年C语言期末模拟考试,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末模拟考试
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、若有以下说明,则( )不是对strcpy库函数正确的调用。 strcpy库函数用于复制一个字符串:char*str1=="abed", strz[10],*str3="hijklmn",*str4[-2],*str5="aaaa";
( B )
2、若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是________。
( A )
3、有以下程序
#include <stdio.h>
main()
{
int c;
while ((c=getchar())!='\n')
{
switch(c-'2')
{
case 0: case 1: putchar(c+4);
case 2: putchar(c+4);
break;
case 3: putchar(c+3);
default: putchar(c+2);
break;
}
}
printf("\n");
}
从第一列开始输入以下数据,<cr>代表一个回车符。 2473<cr> 程序的输出结果是________。
( A )
4、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
( A )
5、以下程序的输出结果是
main()
{
int a=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=2;
case 1: case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
( C )
6、若有说明语句"int a[5],*p=a; ",则对数组元素的正确引用是________。
( B )
7、设 p1 和 p2 是指向同一个 int 型一维数组的指针变量, k 为 int 型变量,则不能正 确执行的语句是______。
( D )
8、以下程序的输出结果是 ___________.
main( )
{
int a=100;
if (a>100) printf("%d\n",a>100);
else printf("%d\n",a<=100);
}
( B )
9、下面程序的输出结果是 __________.
#include<stdio.h>
void main( )
{
int x=3;
do
{
printf("%d ",x-=2);
}
while(!(--x));
}
( C )
10、下列各项关于变量的描述中正确的是________。
( B )
11、执行下面的一段c程序后,变量sum的值应为______。 char chr=127; int sum=300; chr +=1; sum +=chr;
( C )
12、排序的重要目的是为了以后对已排序的数据元素进行________。
( B )
13、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
( A )
14、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是______。
( C )
15、以下能将字符串,you are luck!正确读入的语句组是________。
( B )
16、无符号二进制数后加上一个0,形成的数是原来的几倍?
( B )
17、在c语言中,不允许有常量的数据类型是________。
( A )
18、若变量均已正确定义并赋值,以下合法的c语言赋值语句是________。
( B )
19、执行以下语句后,a,b,c 的值分别为________。 int a,b,c; a=b=c=1; ++a||++b&&++c;
( D )
20、指针x指向的整型变量值为25,则”printf(“%d\n”,++*x);” 的输出是____
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c程序总是从main( ) 函数的第一条语句开始执行的。 ( )
( T )
2、执行语句 ++i; i=3; 后变量i的值为4。
( F )
3、函数的定义和函数的调用均可以嵌套。
( T )
4、用字符串常量给数组赋初值时,如果提供的字符个数小于数组的长度,则在最后一个字符后加'\0'作为字符串结束标志。
( T )
5、用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。
( F )
6、在用数组名作为函数实参时,传递的是数组的起始地址,所以就不允许使用形参数组的形式
( T )
7、执行下列语句int a=3; a+=a-=a*a; 后,a的值是 -12 。( )
( F )
8、在标准c中,逻辑表达式中只允许出现逻辑型数据。
( F )
9、随机操作只适用于二进制文件。
( T )
10、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
三、填空题 (共5题,每题4分,共计20分)
1、逻辑运算符"&&、||、 !"中的优先级是________。
2、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
3、在c语言中,函数的返回值是由___________语句传递的。
4、在c语言中,标识符是由( )、数字、下划线组成的。
5、在传值调用中,实际是把实参的______。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int fun( int n)
{
int m=0,f=1,i;
for(i=1; i<=n; i++)
{
m+=i*f;
f= ________ ;
}
return m;
}
main()
{
printf("m=%d\n", ________ );
}
2、下列程序段的运行结果是_____。#define MAX(x , y) x>y? x : y
main( )
{
int a , b , max;
A=5, b=6;
Max=MAX(a,b);
printf("max=%d\n",max);
}
3、下列程序段的运行结果是________。
main( )
{
int a=5,b=6,c;
int max(int,int);
c=max(a,b);
printf("%d\n",c);
}
int max( int x , int y )
{
int z;
if(x>y) z=x;
else z=y;
return z ;
}
4、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数 例如:从键盘上输入2345,则程序运行的结果应当为:n=2345()
2、编写程序:从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,查找并输出成绩最高的学生信息。 输入输出示例:括号内为说明,无需输入输出 输入样例: 3 (n=3) 1000 85 1001 90 1002 75 输出样例: 1001 90
3、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。
相关标签:
- C语言
- 浙江财经大学
- 期末模拟考试