衡阳师范学院C语言程序设计专升本考题

本试卷为衡阳师范学院C语言程序设计专升本考题,题目包括:单项选择题,填空题,编程题。

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

C语言程序设计专升本考题

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

(  A  )
1、若变量a、b、x、i都已正确定义并赋值,则以下符合c语言语法的表达式是________。
A、a+=a-=(b=4)*(a=3)
B、x%(-3);
C、a=a*3=2
D、v=float(i)
(  D  )
2、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是________。
A、switch(a+9)
{
case cl:y=a-b;
case c2:y=a+b;
}
B、switch a*b
{
case l0:x=a+b;
default:y=a-b;
}
C、switch(a+b)
{
case 1:case3:y=a+b;break;
case 0:case4:y=a-b;
}
D、switch(a*a+b*b)
{
default:break;
case 3:y=a+b;break;
case 2:y=a-b;break;
}
(  D  )
3、设有如下定义:char *aa[2]={"abcd","abcd"};则以下说法中正确的是________。
A、aa数组成元素的值分别是"abcd"和ABCD"
B、aa是指针变量,它指向含有两个数组元素的字符型一维数组
C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D、aa数组的两个元素中各自存放了字符’a’和’A’的地址
(  D  )
4、下面程序的运行结果是________。
#include <stdio.h>
void del(char*s)
{
int i,j;
char *a;
a=s;
for(i=0,j=0;a[i]!='\0';i++)
{
if(a[i]>='0'&&a[i]<='9')
{
s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main()
{
char*s="aa89gggh";
del(s): printf("\n%s",s);
}
A、1
B、2
C、3
D、4
(  C  )
5、下列四组常数中,均是正确的八进制数或十六进制数的一组是________。
A、016 0xbf 018
B、0abc 017 0xa
C、010 -0x11 0x16
D、0A12 7FF -123
(  D  )
6、以下不能定义为用户标识符的是________。
A、scanf
B、Void
C、_3com_
D、int
(  B  )
7、下面结构体的定义语句中,错误的是________。
A、struct ord {
int x;int y;int z;};struct ord a;
B、struct ord {
int x;int y;int z;} struct ord a;
C、struct ord {
int x;int y;int z;} n;
D、struct {
int x;int y;int z;} a;
(  D  )
8、以下正确的定义语句是________。
A、int A['B'];
B、int A[8,3];
C、int A[][9];
D、int A[5];
(  A  )
9、C源程序中的命令 #include与#define是在______阶段被处理的。
A、预处理
B、编译
C、连接
D、执行
(  B  )
10、对以下说明语句的正确理解是________。 int a[10]= {6,7,8,9,10 };
A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[0]至a[4]
C、将5个初值依次赋给a[6]至a[10]
D、因为数组长度与初值的个数不相同,所以此语句不正确
(  D  )
11、决定c语言中函数的返回值类型的是________。
A、return语句中的表达式类型
B、调用该函数时系统随机产生的类型
C、调用该函数时的主调用函数类型
D、在定义该函数时所指定的数据类型
(  B  )
12、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符)
A、ЦЦЦ1,2,3<回车>
B、1Ц2Ц3<回车>
C、1,ЦЦЦ2,ЦЦЦ3<回车>
D、1,2,3<回车>
(  B  )
13、有下列程序:
#include<stdio.h>
main()
{
int a=6,b=7,m=1;
switch(a%2)
{
case 0:m++;
break;
case 1:m++;
switch(b%2)
{
defaut:m++;
case0:m++;
break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是________。
A、1
B、2
C、3
D、4
(  C  )
14、以下程序的输出结果是
main ( ) {
double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A、1.0
B、0.96
C、0
D、1
(  A  )
15、有说明语句int a[4][5]; 则a[2]+3表示__。
A、a数组行下标为2、列下标为3的元素的地址
B、a数组行下标为2、列下标为3的元素的值
C、a数组第2行的首地址
D、a数组第3行的首地址
(  D  )
16、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
A、scanf("%d",&(*p).age);
B、scanf("%c",&std[0].gender);
C、scanf("%c",&(p->gender));
D、scanf("%s",&std.name);
(  A  )
17、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
A、可以是任意合法的表达式
B、只能是整数 0 或非 0 整数
C、可以是结构体类型的数据
D、只能是整数 0 或 1
(  C  )
18、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y && y!=0);
C、if(x>0) x--
D、if(y<0) {;}
(  D  )
19、在c语言中,能代表逻辑值"真"的是________。
A、True
B、大于0的数
C、非0整数
D、非0的数
(  A  )
20、下面不能正确进行字符串赋值操作的语句是________。
A、char s[5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s;s="ABCDEF";
D、char *s; scanf("%s",s);

二、填空题 (共10题,每题2分,共计20分)

1、以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include<stdio.h>
main() {
int a〔10],*p,*s;
for(p=a;p-a<10;p++)scanf("%d",p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf("max=%d\n",________);
}
2、在c语言中除了使用c提供的标准类型名(如int、char等)外,还可以用_________声明新的类型名来代替已有的类型名。
3、若有定义语句:int a=5;,则表达式a++的值是 ________ 。
4、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
5、八进制数37转换成二进制数是________ 。
6、以下程序的运行结果是_____________。
main( )
{
int k, a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
for( k=0;k<4;k ++)printf("%d,",a[k][k]);
}
7、输入求数组有几个元素的语句(arr,size)
8、将arr传参到子函数,接受处()内函数定义该怎么写?
9、若a、b 和c 均是int 型变量,则计算表达式a=(b=4)+(c=2)后, a 的值为________,b 的值为________, c 的值为________。
10、以下程序实现输出x,y,z 三个数中的最大者。请分析程序填空。
main()
{
int x=4,y=6,z=7;
int 【1】________;
if(【2】________) u=x;
else u=y;
if ( 【3】________) v=u;
else v=z;
printf("v=%d",v);
}

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:计算字符串中子串出现的次数 。请输入两个字符串,以回车隔开,母先串在前,子串在后,比如:
abca
a
2
2、输入十个数字,逆序输出。(数组实现)
3、用一个数组存放图书信息,每本书是一个结构,包括下列几项信息书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息然后打印出以上信息,使用结构体实现。