山东交通学院C语言程序设计专升本精选样卷

本试卷为山东交通学院C语言程序设计专升本精选样卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。

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

C语言程序设计专升本精选样卷

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

(  C  )
1、下述对c语言字符数组的描述中错误的是________。
A、字符数组可以存放字符串.
B、字符数组中的字符串可以整体输入、输出.
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值.
D、不可以用关系运算符对字符数组中的字符串进行比较.
(  A  )
2、以下程序片段( ) 。
main ( )
{
int x=0,y=0,z=0;
if (x=y+z) printf("***");
else printf("###");
}
A、输出:###
B、输出:***
C、可以编译,但不能通过连接,所以不能运行
D、有语法错误,不能通过编译
(  D  )
3、在下列选项中,没有构成死循环的程序段是________。
A、int i=100;
while (1)
{
i=i%100+1;
if (i>100) break;
}
B、for( ; ; );
C、int k=1000;
do {++k;} while (k>=1000);
D、int s=36;
while (s) --s;
(  B  )
4、与十六进制数200等值得十进制数为________。
A、256
B、512
C、1024
D、2048
(  C  )
5、设变量已正确定义并赋值,以下正确的表达式是________。
A、x=y*5=x+z
B、int(15.8%5)
C、x=y+z+5,++y
D、x=25%5.0
(  B  )
6、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
A、si
B、*i
C、(*.i
D、p->i
(  D  )
7、可以作为自定义标识符的是________。
A、2x
B、break
C、m-n
D、m_n
(  A  )
8、以下不合法的字符常量是________。
A、'\018'
B、'\'"
C、'\\'
D、'\xcc'
(  B  )
9、若有定义语句:char s[10]="1234567\0\0"; 则strlen(s)的值是________。
A、7
B、8
C、9
D、10
(  C  )
10、有以下程序
main()
{
union
{
unsigned int n;
unsigned char c;
}
ul;
ul.c='a';
printf("%c\n",ul.n);
}
执行后输出结果是______。
A、产生语法错
B、随机值
C、A
D、65
(  D  )
11、在下面的条件语句中(其中s1个s2表示c语言语句),只有()在功能上与其他三个语句不等价。
A、if (a)
S1
else
S2
B、if (a==0)
S2
else
 S1
C、if (a!=0)
S1
else
S2
D、if (a==0)
S1
 else
 S2
(  C  )
12、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
A、0
B、10
C、80
D、160
(  B  )
13、下面四个选项中,均是合法的用户标识符的选项是________。
A、void
B、as_b3
C、For
D、2c
(  A  )
14、若x是整型变量,pb是类型为整型的指针变量,则正确的赋值表达式是______。
A、pb=&x;
B、pb=x;
C、*pb=&x;
D、*pb=*x
(  C  )
15、如果用数组元素作为函数调用时的实参,则该实参向函数的形参传送的是________。
A、数组元素的地址
B、数组的首地址
C、数组元素的值
D、数组名
(  B  )
16、下面选项中合法的字符常量是________。
A、"X"
B、'X'
C、'abc'
D、'\'
(  A  )
17、以下选项中关于 c 语言常量的叙述错误的是________。
A、经常被使用的变量可以定义成常量
B、常量分为整型常量、实型常量、字符常量和字符串常量
C、所谓常量,是指在程序运行过程中,其值不能被改变的量
D、常量可分为数值型常量和非数值型常量
(  B  )
18、假定所有变量均已正确定义,下列程序段运行后x的值是________。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A、14
B、4
C、15
D、3
(  C  )
19、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
A、a[1]
B、a[-1]
C、a[0]
D、a[10]
(  A  )
20、以下函数调用语句中实参的个数是()。
func((e1,e2),(e3,e4,e5));
A、2
B、3
C、5
D、语法错误

二、判断题 (共10题,每题2分,共计20分)

(   T  )
1、字符常量与字符串是两种不同的常量。 
(   F  )
2、宏定义的作用域为从源程序开始起到源程序结束止。 
(   F  )
3、文件包含命令中,只能包含扩展名为.h的文件。 
(   F  )
4、c语言每个函数的返回值都是int型的。 
(   T  )
5、用字符串常量给数组赋初值时,如果提供的字符个数小于数组的长度,则在最后一个字符后加'\0'作为字符串结束标志。 
(   T  )
6、一个c程序可以有若干个c源程序组成,而c源程序可以由若干个函数和预处理组成。() 
(   F  )
7、在switch 语句中必须使用break 语句 
(   T  )
8、选择结构( if 语句)和循环结构都可以使用嵌套形式 
(   F  )
9、宏定义中的宏名必须用大写字母,宏定义的优点是"一改全改"。 
(   T  )
10、以“r”方式打开一个文件时,文件指针指向文件首。 

三、填空题 (共5题,每题4分,共计20分)

1、在c语言中,正确的标识符是由 ________ 组成的,且由 ________ 开头的。
2、c语言三个循环语句分别while语句、________语句和________语句。
3、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
4、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
5、在传值调用中,实际是把实参的______。

四、程序分析题 (共4题,每题5分,共计20分)

1、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{
while(*s++= ________);
}
main( )
{
char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
2、下列程序段的运行结果是________。
#define add(x , y) x+y
main()
{
int a , b , s;
A=5, b=6;
S=add(a,b);
printf("s=%d\n" , s);
}
3、以下程序运行后的输出结果是________。
main()
{
char s[ ]="gfedcba";
int p=6;
while(s[p]!=‘d’)
{
printf("%c ", p);
p=p-1;
}
}
4、当从键盘输入-1 0<cr>, 则以下程序的运行结果是________。
#include<stdio.h>
main()
{
int a,b,m,n;
m=n=1;
scanf("%d%d",&a,&b);
do
{
if(a>0)
{
m=2*n;
b++;
}
else
{
n=m+n;
a+=2;
b++;
}
}
while(a==b);
printf("m=%d n=%d\n",m,n);
}

五、编程题 (共3题,每题0分,共计50分)

1、编写程序:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2、编写程序:从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,查找并输出成绩最高的学生信息。
输入输出示例:括号内为说明,无需输入输出
输入样例:
3 (n=3)
1000 85
1001 90
1002 75
输出样例:
1001 90
3、输入5个数,求和并输出。要求编写求和的函数。