西华师范大学C语言程序设计专升本

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

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

C语言程序设计专升本

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

(  D  )
1、语句:"printf("%d",(a=2)&&(b=-2));"的输出结果是________。
A、无输出
B、结果是不确定
C、-1
D、1
(  A  )
2、下列函数的类型是________。 fun(double x)
{
float y;
y=3*x-4;
return y;
}
A、int
B、不确定
C、void
D、float
(  C  )
3、设有数组定义:char array[]="student"; 则数组所占的存贮空间为________。
A、6个字节
B、7个字节
C、8个字节
D、9个字节
(  B  )
4、当调用函数时,实参是一个数组名,则向函数传送的是 _______ 。
A、数组的长度
B、数组的首地址
C、数组每一个元素的地址
D、数组每个元素中的值
(  A  )
5、下面关于形参与实参的说法,正确的是________。
A、形参与实参的个数、类型、顺序都应一一对应
B、形参与实参的个数可以不必相同,少一个多一个程序一样执行
C、形参与实参的类型可以不同,不影响运算结果
D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可
(  C  )
6、若有以下函数首部int fun(double x[10],int *n)则下面针对此函数的函数声明语句中正确的是________。
A、int fun(double X,int *n);
B、int fun(double ,int);
C、int fun(double * X,int n);
D、int fun(double *int*);
(  A  )
7、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  D  )
8、流程控制语句的基本控制结构有三种,其中不包括________。
A、顺序结构
B、选择结构
C、循环结构
D、计算结构
(  C  )
9、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。
struct st
{
int x;
int y;
int z;
}
struct worker
{
char name[20];
char sex;
struct st birth;
} p;
A、x=1987
B、birth.x=1987;
C、p.birth.x=1987;
D、x=1987;
(  B  )
10、在c语言中,设有数组定义:char array[]="china"; 则数组array所占用的空间为________。
A、5个字节
B、6个字节
C、10个字节
D、12个字节
(  B  )
11、下列程序的输出结果是______。
main()
{
int i;
for(i=0;i<2;i++) add();
}
add()
{
int x=0;
static int y=0;
printf("%d,%d\n",x,y);
x++;
y=y+2;
}
A、0,0 0,0
B、0,0 0,2
C、0,0 1,0
D、0,0 1,2
(  A  )
12、有以下程序:
#include <stdio.h>
main()
{
int i=5;
do {
if(i%3==1)
if(i%5==2) {
printf("*%d", i);
break;
}
i++;
}
while(i!=0);
printf("\n");
}
程序的运行结果是________。
A、*7
B、*3*5
C、*5
D、*2*6
(  D  )
13、以下能正确定义数组并正确赋初值的选项是______。
A、int N=5,a[N][N];
B、int b[1][2]={{1},{2}};
C、int c[2][]={{1,2},{3,4}};
D、int d[3][2]={{1,2},{3,4}};
(  D  )
14、在c语言程序中,注释部分从哪开始,到哪结束?()
A、从"("开始到")"结束
B、从REM开始无结束标志
C、无起始标志
D、从"/*"开始,"*/"结束
(  D  )
15、设char s[10]= 〞abcde〞,t[ ]= 〞12345〞; 则s和t在内存中分配的字节数分别是________。
A、6和5
B、6和6
C、10和5
D、10和6
(  C  )
16、执行如下程序段,打印输出的内容是________。
#include <stdio.h>
void fun (intc, int *d)
{
c++;
(*d)++;
}
int main ( )
{
int a=5, b=9;
fun(a, &b);
printf("%d, %d",a, b);
return 0;
}
A、5, 9
B、6, 10
C、5, 10
D、6, 9
(  B  )
17、以下对枚举类型名的定义中正确的是________。
A、enum a={sum,mon,tue};
B、enum a {sum=9,mon=-1,tue};
C、enum a={"sum","mon","tue"};
D、enum a {"sum","mon","tue"};
(  A  )
18、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式
(  D  )
19、在宏定义#define PI 3.14159中,用宏名代替一个________。
A、常量
B、单精度数
C、双精度数
D、字符串
(  C  )
20、如下说法不正确的是________。
A、c>a+b 等效于c>( a+b)
B、若a,b 均为真,则a||b 为真
C、表达式'c'&&'d' 的值为0
D、逻辑运算符!比逻辑运算符||的优先级高

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

1、已有定义:double *p;
,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元 ________ 。
2、以下函数sstrcat( )的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。
void sstrcat(char *s, char *t)
{
int n;
n= strlen(s);
while (*(s+n)= ________ )
{
s++;
t++;
}
}
3、在c语言中,一个char型数据在内存中占________个字节。
4、若有定义语句:int a=5;,则表达式a++的值是 ________ 。
5、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
6、下列程序的运行结果是: ________
#include <string.h>
char *ss(char *s)
{
return s+strlen(s)/2;
}
main( )
{
char *p,*str="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
7、在c语言中,标识符是由( )、数字、下划线组成的。
8、从文件读入一行,读取字符包括空格,使用函数________。
9、在c 语言中的实型变量分为两种类型,它们是________和________。
10、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ascii码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j];
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("cls");
printf("\nplease enter a character string:");
gets(str);
printf("\n\nbefore sorting:\n%s",str);
proc(str);
printf("\nafter sorting decendingly:\n %s",str);
}

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

1、编写程序:求元素个数为10的一维数组元素中的最大值和最小值。
2、通过函数调⽤实现:讲结构体数组中的三个元素按num成员进⾏升序排列。要求:
①数组元素依次赋初值为:{12,"sunny",89.1}、{8,"henry",73.5}、{21,"lucy",91.7}。
②结构体定义如下:struct s{int num;char name[30];float score;};
3、任意输一行字符串(包括空格),求其长度(不用strlen函数)。