华东交通大学C语言专升本

本试卷为华东交通大学C语言专升本,题目包括:单项选择题,填空题,编程题。

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

C语言专升本

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

(  C  )
1、若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c
A、1
B、2
C、3
D、4
(  B  )
2、struct ex
{
int x ;
float y;
char z ;
}
example;
则下面的叙述中不正确的是________。
A、struct结构体类型的关键字
B、example是结构体类型名
C、x,y,z都是结构体成员名
D、struct ex是结构体类型
(  B  )
3、下面程序的输出结果是________。
main( )
{
unsigned int num,k;
num=26;
k=1;
do
{
k*=num%10;
num/=10;
}
while(num);
printf("%d\n", k);
}
A、2
B、12
C、60
D、18
(  C  )
4、若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是________。
A、ps+1
B、*(ps+3)
C、ps[0][2]
D、*(ps+1)+3
(  D  )
5、以下正确的字符串常量是________。
A、“╲╲╲”
B、‘abc’
C、Olympic
D、**
(  A  )
6、执行下面程序后 , 运行结果是 __________.
#include <stdio.h>
void main( )
{
int x=41,y=1;
if (x%3==0 && x%7==0)
{
y+=x;
printf("y=%d\n",y);
}
else
{
y=x;
printf("y=%d",y);
}
}
A、y=41
B、y= 43
C、y=42
D、y=1
(  C  )
7、在c语言中,以下一组运算符中,优先级最高的运算符是______。
A、<=
B、=
C、%
D、&&
(  D  )
8、下列说法正确的是________。
A、main函数必须放在C程序的最后面
B、main函数必须放在C程序的最前面
C、main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的
D、main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的
(  B  )
9、下列一维数组定义正确的是________。
A、x=5;int num[x];
B、const iht x=5;float num[x];
C、const float x=5;int num[x];
D、const int x;x=5;intnum[x];
(  D  )
10、下面关于数组的描述错误的是________。
A、在C语言中数组的名字就是指向该数组第一个元素的指针
B、长度为n的数组,下标的范围是0~n-1
C、数组的大小必须在编译时确定
D、数组只能通过值参数和引用参数两种方式传递给函数
(  D  )
11、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是________。
A、函数调用可以作为独立的语句存在
B、函数调用可以无返回值
C、函数调用可以出现在表达式中
D、函数调用可以作为一个函数的形参
(  A  )
12、下列描述中,符合结构化程序设计风格的是________。
A、使用顺序、选择和重复(循环) 三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的存储效率
D、使用goto语句跳转
(  D  )
13、在c语言中,while和do…while循环的主要区别是________。
A、do…while的循环体不能是复合语句
B、do…while允许从循环体外转到循环体内
C、whil8的循环体至少被执行一次
D、do…while的循环体至少被执行一次
(  C  )
14、有以下程序
main()
{
int i=1,j=1,k=2;
if((j++‖k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是________。
A、1,1,2
B、2,2,1
C、2,2,2
D、2,2,3
(  D  )
15、有以下函数:fun(char *a,char *b)
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{
a++;
b++;
}
return(*a-*b);
}
该函数的功能是______。
A、计算 a 和 b 所指字符串的长度之差
B、将 b 所指字符串连接到 a 所指字符串中
C、将 b 所指字符串连接到 a 所指字符串后面
D、比较 a 和 b 所指字符串的大小
(  B  )
16、已知int a[3][2]=(3,2,1); 则表达式"a[0][0]/a[0][1]/a[0][2]"的值是________。
A、0.166667
B、1
C、0
D、错误的表达式
(  B  )
17、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
A、st1 = st2
B、p->name = st2.name
C、p->num = st2.num
D、*p=st2
(  A  )
18、以下选项中不合法的标识是________。
A、&a
B、FOR
C、print
D、_00
(  A  )
19、指针变量p进行自加运算(即 执行p++;)后,地址偏移值为4,则其 数据类型为________。
A、int
B、float
C、double
D、char
(  A  )
20、在C语言中,下面那种数据类型不属于构造类型____
A、枚举类型
B、数组类型
C、结构体类型
D、共用体类型

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

1、有以下程序,请填空____,程序的执行结果是____
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
}
float fun (float)
main
{
nfloat x, y;
int flag;
printf("enter x:");
scanf(" %f ", &x);
flag=fun(x);
if (________) printf("x=%f is out of range.\n", x);
else printf("x=%f,y=%f\n", x, fun(x) );
}
________fun(float x)
{
nfloat s;
if ( abs(x)>1 ) return (2);
else
{
s=sqrt (1-x*x);
________;
}
}
2、有以下程序
#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);
}
程序运行后的输出结果是: ________。
3、局部变量的作用域是从______的位置起,到函数结束止。
4、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
5、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
6、字母'a'的ascii码值为多少()
7、在c语言中,用转义字符 \" 表示________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
8、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
9、函数strlen("1234\0xy")的值为:______。
10、设y为int型变量,请写出描述“y是奇数”的表达式______。

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

1、编写程序:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。程序功能如下:
输入你要保存到的文件的名称:
test.txt
现在你可以输入你要保存的一些字符,以#结束:
www.baidu.com
#
2、编写程序:编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表
3、编程序求1~80所有整数的平方和并输出结果。