山西农业大学历年C语言模拟
本试卷为山西农业大学历年C语言模拟,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言模拟
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、有以下程序段: int i,j,m=0;
for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4)m++;
printf("%d\n",m);
程序段的输出结果是________。
( C )
2、avg功能是求整形数组中的前若干个元素的平均值,设数组元素个数最多不超过则下列函数说明语句错误的是________。
( A )
3、下列程序的输出结果是________。
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
( D )
4、要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{
int i,j,k;
for(i=1;i<=5;i++)
{
for(j=1;j<=20-3*i;j++) printf(" ");
for(k=1;________;k++) printf("%3d",k);
for(________;k>0;k++) printf("%3d",k);
printf("\n");
}
}
( B )
5、以下关于return 语句的叙述中正确的是________。
( A )
6、设有如下程序段 char s[20]= "bejing",*p; p=s; 则执行p=s; 语句后,以下叙述正确的是________。
( D )
7、在c语言中对一维整型数组的正确定义为 。
( B )
8、以下运算符中优先级最高的运算符为________。
( B )
9、有如下程序
#include<stdio.h>
void main()
{
int x=23;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是 _________。
( C )
10、如有说明 : char s1[5],s2[7]; 要给数组 s1 和 s2 整体赋值 , 下列语句中正确的是 __________.
( C )
11、若函数调用时用数组名作为函数参数,以下叙述中,不正确的是 __________.
( B )
12、在下面关于指针的说法中,错误的一条是________。
( B )
13、若有定义语句:int x=12,y=8,z; 在其后执行语句z=0.9+x/y; 则z的值为___________。
( C )
14、以下选项中合法的实型常数是________。
( A )
15、下列选项中不属于c语言的数据类型是________。
( C )
16、null是指 ________。
( D )
17、下面叙述正确的是________。
( D )
18、在下面的条件语句中(其中s1个s2表示c语言语句),只有()在功能上与其他三个语句不等价。
( C )
19、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
( A )
20、以下关于continue语句的描述中正确的是________。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c程序中if语句可以单独存在。
( T )
2、用strcat(字符串1,字符串2)连接两个字符串函数时,将字符串1后面的'\0'取消,只在新串的最后保留一个'\0'。
( T )
3、c语言中不允许嵌套定义函数。
( F )
4、宏定义在行末加分号。
( F )
5、在定义函数时,必须要指定函数中的参数列表。( )
( F )
6、c程序可以省略main( )函数。
( F )
7、若变量已正确定义,以下while循环结束时,i的值为11。
i = 1;
while (i <= 10)
{
printf("%d\n", i);
}
( T )
8、数组的基地址是在内存中存储数组的起始位置,数组名本身就是一个地址即指针值。
( T )
9、在同一源文件中,使用extern可将全局变量的作用域向上扩展。
( F )
10、INT是非法表示符
三、填空题 (共5题,每题4分,共计20分)
1、设x=0,y=2,则表达式"!x+y"的值是_____________。
2、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
3、语言的函数体一般由____和____构成
4、设int a=12,则表达式a/=a+a 运算后,a的值是______。
5、指针是存放______的变量。
四、程序分析题 (共4题,每题5分,共计20分)
1、有以下程序
#include < stdio.h >
main()
{
int a=1,b=2,c=3,d=0;
if (a==1) if (b!=2) if(c!=3) d=1;
else d=2;
else if(c!=3) d=3;
else d=4;
else d=5;
printf("%d\n",d);
}
程序运行后的输出结果是: ________。
2、下列程序段的运行结果是________。
char a='m' ,*p ;
p=&a;
printf("%c",*p);
3、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
4、以下程序运行后的输出结果是________。
main()
{
char s[ ]="gfedcba";
int p=6;
while(s[p]!=‘d’)
{
printf("%c ", p);
p=p-1;
}
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
2、输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。 输入格式: 输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。 输出格式: 按照年龄从大到小输出朋友的信息,格式同输出。 输入样例: 3 zhang 19850403 13912345678 wang 19821020 +86-0571-88018448 qian 19840619 13609876543 输出样例: wang 19821020 +86-0571-88018448 qian 19840619 13609876543 zhang 19850403 13912345678
3、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用strcat函数)。
相关标签:
- C语言
- 山西农业大学
- 模拟