北方工业大学2022年C语言程序设计期末冲刺卷
本试卷为北方工业大学2022年C语言程序设计期末冲刺卷,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末冲刺卷
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、设在c语言中,float类型数据占4个字节,则double类型数据占( )个字节。
( C )
2、下面程序的输出的是
main()
{
int x=10,y=3;
printf("%d\n",y=x/y);
}
( A )
3、有以下程序
main( )
{
char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"} ;
printf("%d\n",strlen(p[4]));
}
执行后输出结果是________。
( C )
4、设有如下定义: struck sk
{
int a;
float b;
} data;
int *p;
若要使 p 指向 data 中的 a 域,正确的赋值语句是______。
( C )
5、运行下面程序时,若从键盘输入数据为 "123" , 则输出结果是 _________.
#include "stdio.h"
void main()
{
int num,i,j,k,place;
scanf("%d",&num);
if (num>99) place=3;
else if(num>9) place=2;
else place=1;
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10);
switch (place)
{
case 3: printf("%d%d%d\n",k,j,i);
break;
case 2: printf("%d%d\n",k,j);
break;
case 1: printf("%d\n",k);
}
}
( C )
6、定义如下变量和数组 : int i;
int x[4][4]= { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
则下面语句的输出结果是 __________.
for(i=0;i<4;i++)
printf("%3d",x[i][3-i]);
( B )
7、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
( A )
8、c语言中,凡未指定存储类别的局部变量的隐含存储类别是________。
( B )
9、二维数组a的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若a按行先存储,元素a[8,5]的起始地址与当a按列先存储时的元素( )的起始地址相同。设每个字符占一个字节。
( B )
10、若要定义a为3×4的二维数组,正确的定义语句是________。
( A )
11、c语言中用于定义类的关键字是________。
( A )
12、根据数制的基本概念,下列各进制的整数中,值最大的一个是______。
( B )
13、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是________。
( D )
14、设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 语句为变量a1和a2赋数值 10和20,为变量c1和c2赋字符x和y。以下所示的输入形式中正确的是(注:口代表空格字符)
( B )
15、字符串"xyz"在内存占用的字节数是______。
( A )
16、有以下程序
struct s
{
int n;
int a[20];
}
;
void f(int *a, int n)
{
int i;
for(i=0;i<n-1;i++) a[i]+=i;
}
main()
{
int i;
struct s s={10,
{
2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++) printf("%d,",s.a[i]);
}
程序运行后的输出结果是______。
( D )
17、以下叙述中正确的是________。
( C )
18、经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为________。 char x=65; float y=7.3; int a=100; double b=4.5;
( A )
19、c语言的if语句中,用作判断的表达式为____
( D )
20、int a[10]; 合法的数组元素的最小下标值为____
二、填空题 (共10题,每题2分,共计20分)
1、以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空 int isprime(int a)
{
int i;
for(i=2;i<=a/2;i++) if(a%i==0)________;
________;
}
2、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
3、已知char str[]="man",则strlen(str)的值为_____。
4、一个3位的二进制数能表示几个数?
5、在c语言中,"a"在内存中占( )个字节。
6、编译预处理包括( )、文件包含、条件编译等。
7、下面程序的功能是用―辗转相除法‖求两个正整数的最大公约数。请分析程序填空。
#include <stdio.h>
main()
{
int r, m, n;
scanf("%d%d", &m, &n);
if (m < n) ____1___;
r = m % n;
while (r)
{
m = n;
n = r;
r = ____2___;
}
printf("%d\n", n);
}
8、改正下列程序中不正确的语句。
main()
{
int n ;
float s=1.0;
for(n=10;n>1;n--) s=s+1/n;
printf("%6.1f\n",s);
}
9、C语言源程序经过编译后,生成文件的后缀名是 ___。
10、break语句通常用于______中。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:利用结构体类型,编程计算一名同学5门课的平均分。
2、打印楼梯,同时在楼梯上方打印两个笑脸。
3、用空格或换行分开的字符串称为单词。输入多行字符串,直到遇到了单词 "stop" 时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。单词数量不包括"stop" 。
相关标签:
- C语言
- 北方工业大学
- 期末冲刺卷