青海师范大学往年C语言程序设计专升本

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

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

C语言程序设计专升本

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

(  D  )
1、下列说法正确的是________。
A、在c语言中,可以使用动态内存分配技术定义元素个数可变的数组
B、在C语言中,数组元素的个数可以不确定,允许随机变动
C、在C语言中,数组元素的数据类型可以不一致
D、在C语言中,定义一个数组后,就确定了它所容纳的元素的个数
(  D  )
2、执行下面的程序后,a的值为________。
main()
{
int a,b;
for(a=1,b=1;a<=10;a++)
{
if(b%3==l)
{
b+=3;
continue;
}
b-=5;
}
}
A、7
B、8
C、9
D、10
(  A  )
3、在 c 语言中,当函数调用时 。
A、实参和形参各占一个独立的存储单元
B、实参和形参共用存储单元
C、可以由用户指定实参和形参是否共用存储单元
D、由系统自动确定实参和形参是否共用存储单元
(  C  )
4、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
A、不定值
B、4
C、3
D、1
(  C  )
5、执行下列语句后,i和n的值为________。 int i=10; int n=i++%5;
A、10,O
B、10,1
C、11,0
D、11,1
(  A  )
6、以下叙述中正确的是______。
A、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元
B、一条语句只能定义一个数组
C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
D、在引用数组元素时,下标表达式可以使用浮点数
(  D  )
7、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
A、30
B、29
C、24
D、22
(  B  )
8、所有在函数中定义的变量及函数的形式参数,都属于________。
A、全局变量
B、局部变量
C、静态变量
D、常量
(  C  )
9、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
A、0,1,2
B、1,2,3
C、1,1,3
D、1,2,2
(  A  )
10、若运行时给变量x输入12,则以下程序的运行结果是
main()
{
int x,y;
scanf("%d",&x);
y=x>12 ? x+10 : x-12;
printf("%d\n",y);
}
A、0
B、22
C、12
D、10
(  C  )
11、下列数组的定义中,错误的是________。
A、char ca1[]='c','m','n';
B、char ca2[6]="name";
C、char ca3[4]="your";
D、int array[]=1,2,3,4;
(  B  )
12、关于字符型变量的定义,下列选项正确的是________。
A、char ch = a;
B、char ch = 'a';
C、char ch = "a";
D、char ch = \a;
(  C  )
13、有以下程序
main()
{
union
{
unsigned int n;
unsigned char c;
}
ul;
ul.c='a';
printf("%c\n",ul.n);
}
执行后输出结果是______。
A、产生语法错
B、随机值
C、A
D、65
(  C  )
14、以下程序的输出结果是______。
#include <stdio.h>
main()
{
int i;
for(i=1;i<5;i++)
{
if(i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
}
A、*#*#*#$
B、#*#*#*$
C、*#*#$
D、#*#*$
(  D  )
15、设有以下语句
typedef struct tt
{
char c;
int a[4];
}
cin;
则下面叙述中正确的是______。
A、可以用TT定义结构体变量
B、TT是struct类型的变量
C、可以用CIN定义结构体变量
D、CIN是struct TT类型的变量
(  C  )
16、我们所写的每条 c 语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是______。
A、一条 C 语句可能会被转换成零条机器指令
B、一条 C 语句可能会被转换成多条机器指令
C、一条 C 语句对应转换成一条机器指令
D、某种类型和格式的 C 语句被转换成机器指令的条数是固定的
(  C  )
17、下面不是c 语言整形常数的是________。
A、02
B、0
C、038
D、0Xal
(  C  )
18、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10
void arrin(int x[N])
{
int i=0;
while(i<N)scanf("%d",______);
}
在下划线处应填入的是______。
A、x+i
B、&x[i+1]
C、&x[i++]
D、&x[++i]
(  A  )
19、若以下变量均是整型, 且num=sum=7;
则计算表达式sum=num++, sum++,++num 后sum 的值为________。
A、7
B、8
C、0
D、10
(  B  )
20、以下语句中,不能实现回车换行的是()。
A、printf("\n");
B、putchar("\n");
C、fprintf(stdout,"\n");
D、fwrite("\n",1,1,stdout);

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

(   T  )
1、用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间必须足够大。 
(   F  )
2、函数fscanf()和fprintf()这两个函数是对标准输入、输出设备进行读写,而不是对磁盘文件进行读写。 
(   T  )
3、语句printf("%.2f",1.0/3);
输出为0.33。 
(   T  )
4、if语句中的表达式不限于逻辑表达式,可以是任意的数值类型 
(   T  )
5、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。() 
(   F  )
6、c程序可以省略main( )函数。 
(   T  )
7、文件指针用于指向文件,文件只有被打开后才有对应的文件指针。 
(   T  )
8、逻辑运算符<关系运算符<算术运算符<赋值运算符是错误的。 
(   F  )
9、若函数的返回值与return 表达式类型不一致时,以return 表达式类型为准。 
(   T  )
10、continue语句可用于循环体内,它将退出当前循环。 

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

1、编写程序:求元素个数为10的一维数组元素中的最大值和最小值。
2、建立一个链表每个结点包括学号、姓名、性别、年龄、地址。输入一个学号打印该学号的学生的所有信息。如无此学号,则输出“没有找到",使用结构体实现
3、编写程序,从输入的一行字符串中抽取一部分(从第n个字符开始,抽取m个字符)构成一个新的字符串,并输出。其中n>0且n<=字符串的长度,否则打印“起始位置n越界”
要求:n和m都由用户输入。
如果抽取的字符串长度不够,则按照实际长度抽取,例如,字符串为“abcde”,若n=2,m=3,则抽取结果为“bcd”;若n=3,m=5,则抽取结果为“cde”;若n=0,m=4 则输出:起始位置0越界 ;若n=6,m=2 则输出:起始位置6越界