北华大学C语言程序设计模拟考试
本试卷为北华大学C语言程序设计模拟考试,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计模拟考试
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
( C )
2、有以下程序:
main()
{
int x,i;
for(i=l;i<=50;i++)
{
x=i: if(x%2=0) if(x%3=0) if(x%7=0) printf("%d,i)";
}
}
输出结果是________。
( D )
3、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
( A )
4、下列字符串是标识符的是: 。
( D )
5、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
( A )
6、在c语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
( D )
7、下列说法不正确的是________。
( C )
8、给一个short类型变量赋值的范围是________。
( B )
9、有下列程序:
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是________。
( C )
10、下列选项中,关于main()函数叙述不正确的是________。
( B )
11、有如下程序
#define N 4
#define M N+2
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( A )
12、有以下程序
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;
int i;
float sum=0;
p=s+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
( B )
13、以下程序段的输出结果是:______。char s[]="\\234\234abcd\t";
printf("%d\n",strlen(s));
( B )
14、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为________。
( B )
15、c语言中,运算符>=属于
( C )
16、下面说法正确的是________。
( A )
17、有说明语句:inta,b; 如果输入 111322333,使得 a 的值为 111,b 的值为 333,则以下正确的语句是________。
( A )
18、下面四个选项中,均是合法转义字符的选项是________。
( C )
19、设c 语言中,int 类型数据占2 个字节, 则long 类型数据占____
( B )
20、若有下列定义和语句,则对 a 数组元素的非法引用是()。 int a[2][3], (*pt)[3]; pt=a;
二、判断题 (共10题,每题2分,共计20分)
( F )
1、c程序的执行是从程序文件的第一个函数开始,到最后一个函数结束。( )
( T )
2、有数组定义int a[2][2]={{1},{2,3}};
则a[0][1]的值为0。
( T )
3、对全局指针变量与局部静态指针变量而言,在定义时若未被初始化,则编译系统自动初始化为空指针0
( T )
4、if语句中的表达式不限于逻辑表达式,可以是任意的数值类型
( F )
5、break语句只能用在循环语句中。
( T )
6、以下定义了一个一维数组str,该数组可以存放81个字符型数据。char str[81];
( T )
7、宏定义是用宏名来表示一个字符串,在宏代换时以该字符串取代宏名。
( T )
8、直接访问就是直接利用变量的地址进行存取直接访问
( T )
9、宏定义和文件包含都是c语言中的编译预处理命令,对它们的处理是在编译前完成的
( F )
10、函数的形参可以是常量,变量或表达式
三、填空题 (共5题,每题4分,共计20分)
1、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句________。
2、#include<stdio.h>
{
int i=010,j=10;
printf("%d,%d\n",++i,j--);
}
3、若i为整型变量,且i%2==0的值为1,则变量i为________数。
4、程序的结果是:
#include<stdio.h>
void main()
{
int i,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2) continue;
x++;
}
x++;
}
printf("x=%d",x);
}
5、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
四、程序分析题 (共4题,每题5分,共计20分)
1、程序结果:
void main()
{
int a,b,sum;
a=123;
b=456;
sum=a+b;
printf("sum is %d\n",sum);
}
2、以下程序的输出结果是_____________。
main()
{
int a=10,b=10;
printf("%da%d",a――,――b);
}
3、函数del 的作用是删除有序数组a 中的指定元素x。已有调用语句n=del(a,n,x);
其中实参n 为删除数组元素的个数,赋值号左边的n 为删除后数组元素的个数。请填空。del(int a[],int n,int x)
{
int p,i;
p=0;
while (x>=a[p]&&p<n)【1】________;
for(i=p-1;i<n;i++)【2】________;
n=n-1;
return n;
}
4、改正下列程序中不正确的语句。
main()
{
int n ;
float s=1.0;
for(n=10;n>1;n--) s=s+1/n;
printf("%6.1f\n",s);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序: 古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
2、给定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
3、从键盘上输入一个字符串, 计算字符串里有多少个空格、小写字母、大写字母、数字。
相关标签:
- C语言
- 北华大学
- 模拟考试