鲁东大学往年C语言程序设计专升本

本试卷为鲁东大学往年C语言程序设计专升本,题目包括:单项选择题,判断题,编程题。

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

C语言程序设计专升本

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

(  D  )
1、若有定义:int a[2][3]; 以下选项中对a数组元素正确引用的是________。
A、a[2][!1]
B、a[2][3]
C、a[0][3]
D、a[1>2][ !1]
(  A  )
2、下列字符串是标识符的是: 。
A、_HJ
B、9_student
C、long
D、LINE 1
(  B  )
3、若 x 为 int 型变量 , 则执行以下语句后 ,x 的值为 。 x=6; x+=x-=x*x;
A、36
B、-60
C、60
D、-24
(  B  )
4、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
A、si
B、*i
C、(*.i
D、p->i
(  A  )
5、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
A、*(p+4)
B、p+4
C、*p+4
D、a+4
(  B  )
6、下面关于变量组成部分的描述中正确的是________。
A、变量名不是标识符
B、变量名是标识符
C、浮点型属于复合类型
D、变量属性分为两类:基本类型和复合类型
(  A  )
7、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  B  )
8、已知 #int t=0; while(t=1) {...} 则以下叙述正确的是________。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对
(  C  )
9、下列关于break语句的描述,不正确的是________。
A、break语句可用在循环体内,它将使执行流程跳出本层循环体
B、break语句可用在switch语句中,它将使执行流程跳出当前switch语句
C、break语句可用在订语句中,它将使执行流程跳出当前if语句
D、break语句在一层循环体中可以出现多次
(  D  )
10、以下叙述不正确的是_____。
A、分号是C语言的必要组成部分
B、C程序的注释可以写在句的后面
C、函数是C程序的基本单位
D、主函数的名字不一定用main表示
(  C  )
11、关于二进制,下列描述错误的是________。
A、二进制数由数字0和1表示
B、一个二进制数字0和1表示一位,八位为一个字节
C、由于二进制由数值较小的0和1表示,所以只能表示一部分数据
D、二进制与十进制相互转换,不改变值的大小
(  D  )
12、以下说法错误的是________。
A、计算机算法具有有穷性;确定性;0或多个输入;一个或者多个输出;有效性
B、结构化设计采用自顶向下;逐步细化;模块化设计;结构化编码。
C、算法是解决问题的方法和步骤。
D、只有流程图和NS图能描述算法,伪码则不行。
(  A  )
13、以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
}
main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
int i,s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b[i];
printf("%d\n",s);
}
程序运行后的输出结果是______。
A、22
B、10
C、34
D、30
(  D  )
14、执行语句组 int a,b; b=(a=4*9,a*2),a-3; 后, b 的值是________。
A、36
B、69
C、33
D、72
(  D  )
15、在c语言中,一维数组的定义方式为:类型说明符 数组名____
A、[常量表达式]
B、[整型表达式]
C、[整型常量]或[整型表达式]
D、[整型常量]
(  C  )
16、若有定义: int (*p)[4];
则标识符p 。
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个指针,它指向一个含有四个整型元素的一维数组
D、定义不合法
(  A  )
17、以下程序的输出结果是________ 。
# define A 3
# define B(A) ((A+1)*A)
main()
{
int x;
x=3*(A+B(7));
printf ("x=%4d\n ", x);
}
A、93
B、135
C、54
D、251
(  C  )
18、若有以下数组说明,则i=10;a[a[i]]元素数值是____。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
(  D  )
19、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、0
(  B  )
20、下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf("\n%d",ar);
}
A、192
B、29
C、27
D、25

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

(   T  )
1、putchar函数可以向终端输出一个字符或字符型变量值。 
(   T  )
2、比较两个字符串是否相等不能通过条件运算符"=="。 
(   F  )
3、八进制是一种"逢八进一"的进制,它由0~8这九个符号来描述。() 
(   T  )
4、do…while循环语句中的循环体至少会执行一次。 
(   T  )
5、省略else的if语句的一般形式如下,若表达式的值为"真",则执行语句1;
否则,就什么也不做。if (表达式) 语句1 
(   F  )
6、在c语言程序中,函数名和圆括号可以省略。 
(   T  )
7、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件。 
(   F  )
8、字符数组定义后,可以用赋值语句将一字符串常量或字符数组直接赋给一个字符数组。 
(   F  )
9、c语言中非标准输入输出设备指的是键盘和显示器。 
(   F  )
10、二维数组元素在内存中的存放顺序是按列主顺序存放 

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

1、编写程序:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
2、通过函数调⽤实现:讲结构体数组中的三个元素按num成员进⾏升序排列。要求:
①数组元素依次赋初值为:{12,"sunny",89.1}、{8,"henry",73.5}、{21,"lucy",91.7}。
②结构体定义如下:struct s{int num;char name[30];float score;};
3、有一篇文章,共有多行文字(不超过10行), 最后一行为end。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。统计结果不包括最后一行的end。