安徽工业大学C语言程序设计专升本预测卷

本试卷为安徽工业大学C语言程序设计专升本预测卷,题目包括:单项选择题,判断题,编程题。

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

C语言程序设计专升本预测卷

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

(  C  )
1、各种基本数据类型的存贮空间正确的长度排列为________。
A、char<long<int<double
B、double<long<int<char
C、char<int<long<double
D、int<long<char<double
(  C  )
2、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
A、2,0
B、5,0
C、5,5
D、2,5
(  C  )
3、已定义以下函数 fun(int *p)
{
return *p;
}
该函数的返回值是________。
A、不确定的值
B、形参p中存放的值
C、形参p所指存储单元中的值
D、形参p的地址值
(  A  )
4、已有函数 max ( a , b ),为了让函数指针变量 p 指向函数 max ,正确的赋值方法是______。
A、p=max ;
B、*p=max ;
C、p=max ( a , b );
D、*p=max ( a , b );
(  B  )
5、已有定义 int ( *p )(); 指针 p 可以 。
A、代表函数的返回值
B、指向函数的入口地址
C、表示函数的类型
D、表示函数返回值的类型
(  D  )
6、下面程序段的运行结果是 _____________.
for(i=1;i<=5;)
printf("%d",i);
i++;
A、12345
B、1234
C、15
D、无限循环
(  C  )
7、若在某函数内部有定义:int a[3][4]; 则数组a中各元素________。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0
(  A  )
8、下列语句中,可以作为无限循环语句的是________。
A、for(;;)
B、for(int i=0;i<10000;i++)
C、while(false)
D、do)while(false)
(  D  )
9、已知:char s[100]; int i; 则引用数组元素的错误的形式是________。
A、s[i+10]
B、*(s+i)
C、*(i+s)
D、*((s++)+i)
(  C  )
10、以下选项中属于c语言数据类型的是________。
A、复数型
B、逻辑型
C、双精度型
D、集合型
(  B  )
11、下列选项中,哪一项不是c语言中的位运算符________。
A、&
B、||
C、~
D、^
(  C  )
12、若已定义 x 和 y为double 类型, 则表达式 x=1; y=(x+3)/2 的值是________。
A、1
B、2
C、2.00000
D、2.50000
(  C  )
13、有以下程序
int f1(int x,int y)
{
return x>y?x:y;
}
int f2(int x,int y)
{
return x>y?y:x;
}
main()
{
int a=4,b=3,c=5,d,e,f;
d=f1(a,b);
d=f1(d,c);
e=f2(a,b);
e=f2(e,c);
f=a+b+c-d-e;
printf("%d,%d,%d\n",d,f,e);
}
执行后输出的结果是______。
A、3,4,5
B、5,3,4
C、5,4,3
D、3,5,4
(  B  )
14、一个字节代表几位二进制数():
A、1
B、8
C、16
D、根据计算机的位数决定
(  A  )
15、分析以下程序的运行结果( ) func(int a,int b)
{
int t=a;
a=b;
b=t;
}
int main()
{
int x,y;
x=10,y=20;
func(x,y);
printf("%d,%d\n",x,y);
return 0;
}
A、10,20
B、10,10
C、20,10
D、20,20
(  D  )
16、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
A、xy,aaaacc
B、aaaacc,xy
C、XCC,aabcc
D、ace,xabcc
(  C  )
17、下列关于指针变量的描述,不正确的是________。
A、在没有对指针变量赋值时,指针变量的值是不确定的
B、同类指针类型可以进行相减操作
C、在使用没有赋值的指针变量时,不会出现任何问题
D、可以通过指针变量来取得它指向的变量值
(  B  )
18、以下对枚举类型名的定义中正确的是________。
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  )
19、定义共用体的关键字是________。
A、union
B、enum
C、struct
D、typedef
(  B  )
20、若有下列定义和语句,则对 a 数组元素的非法引用是()。
int a[2][3], (*pt)[3]; pt=a;
A、pt[0][0]
B、*(pt+1)[2]
C、*(pt[1]+2)
D、*(a[0]+2)

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

(   F  )
1、在c语言中,引用数组元素时,数组下标的数据类型只能是整型常量。 ( ) 
(   F  )
2、c程序的每行中只能写一条语句。 
(   T  )
3、在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。 
(   F  )
4、赋值运算符的结合方向为自左向右。 
(   T  )
5、用while语句和用do-while语句处理同一问题时,若二者的循环体部分一样,但在while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。 
(   F  )
6、按照c语言的规定,在参数传递过程中,既可以将实参的值传递给形参,也可以将形参的值传递给实参,这种参数传递是双向的。 
(   F  )
7、一个数组是由连续的一块内存单元组成的,指针变量就是这块连续内存单元的首地址 
(   F  )
8、c语言约定'\0' 计入字符串的长度。 
(   T  )
9、break 语句不能够单独使用,只能用于循环语句和switch 语句 
(   F  )
10、随机操作只适用于二进制文件。 

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

1、编写程序:判断输入字符的字母的个数,以*结束输出。
2、计算n名学⽣成绩的平均分并通过函数返回。要求:
结构体代码如下:
struct StudentScore{
double score;
};
3、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?