广东海洋大学C语言程序设计专升本考题

本试卷为广东海洋大学C语言程序设计专升本考题,题目包括:单项选择题,填空题,编程题。

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

C语言程序设计专升本考题

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

(  B  )
1、在下列给出的表达式中,与while(e)中的(e)不等价的表达式是________。
A、(!E==0)
B、(E>0||E<0)
C、(E==0)
D、(E!=0)
(  A  )
2、c语言结构体类型变量在程序执行期间,________。
A、所有成员一直驻留在内存中
B、没有成员驻留在内存中
C、部分成员驻留在内存中
D、只有一个成员驻留在内存中
(  A  )
3、表达式'5'-'1'的值是________。
A、整数4
B、字符4
C、表达式不合法
D、字符6
(  D  )
4、c语言对嵌套的if语句的规定是:else总是与 配对。
A、与之前最近的if
B、第一个if
C、缩进位置相同的if
D、与之前最近的且尚未配对的if
(  C  )
5、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:________。
A、switch
B、continue
C、break
D、if
(  A  )
6、与数学公式a•b/x•y不等价的语句是________。
A、a*b/x*y
B、a*b/x/y
C、a*b/(x*y)
D、a/(x*y)*b
(  B  )
7、不能把字符串:hello!赋给数组b的语句是________。
A、char b[10]={'H','e','l','l','o','!'};
B、char b[10]; b="Hello!";
C、char b[10]; strcpy(b,"Hello!");
D、char b[10]="Hello!";
(  D  )
8、下列一维数组初始化语句中,正确且与语句 float a[ ]={ 0,3,8,0,9}; 等价的是 __________.
A、float a[6]={
0,3,8,0,9};
B、float a[4]={
0,3,8,0,9};
C、float a[7]={
0,3,8,0,9};
D、float a[5]={
0,3,8,0,9};
(  A  )
9、下列语句中,可以作为无限循环语句的是________。
A、for(;;)
B、for(int i=0;i<10000;i++)
C、while(false)
D、do)while(false)
(  B  )
10、二维数组m[i,j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i范围从0到4,列下标,i的范围从0到5。m按行存储时元素m[3,5]的起始地址与m按列存储时元素( )的起始地址相同。
A、M[2,4)
B、M[3,4)
C、M[3,5]
D、M[4,4)
(  B  )
11、下列程序段的运行结果是________。
#include<stdio.h>
void main()
{
char str[]="abc",*p=str;
printf("%d\n",* (p+3));
}
A、67
B、0
C、字符'C'的地址
D、字符'C'
(  A  )
12、下列选项中合法的数组定义是________。
A、int a[]="string";
B、int a[5]={
0,1,2,3,4,5};
C、char a="sting";
D、char a[]={
0,1,2,3,4}
(  D  )
13、下面程序
void prtv(int *x)
{
printf("%d\n",++*x);
}
main()
{
int a=25;
prtv(&a);
}
的输出是______。
A、23
B、24
C、25
D、26
(  A  )
14、以下程序的输出结果是______。
main()
{
char c='z';
printf("%c",c-25);
}
A、a
B、z
C、z-25
D、y
(  D  )
15、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是________。
A、地址传递
B、由用户指定传递方式
C、双向值传递
D、单向值传递:实参的值传给形参
(  C  )
16、下面正确的字符串常量是________。
A、'a'
B、'376'
C、"\n"
D、376
(  A  )
17、先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是________。
A、c='a';
B、c="a";
C、c="97";
D、C='97'
(  C  )
18、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
A、p1=&ch; scanf("%c",p1);
B、p2=(char *)malloc(1);scanf("%c",p2);
C、*p3=getchar();
D、p4=&ch;*p4=getchar();
(  B  )
19、以下对枚举类型名的定义中正确的是________。
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"};
(  B  )
20、c语言中,定义结构体的保留字是________。
A、union
B、struct
C、enum
D、typedef

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

1、有定义char str[]={‘d’,’o’,’g’,’\0’};
若执行puts(str);
则输出结果为________。
2、c语言中基本的数据类型有:整型、________、________ 。
3、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
4、c允许用一种特殊形式的字符常量,就是以字符\开头的字符序列,称为________。
5、若有以下定义语句float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};,则表达式"x[1][1]*x[2][2]"的值是【1】。
6、下列程序段的运行结果是________。
void fun()
{
int a=3;
}
main()
{
int a=1;
fun(- );
printf("a=%d",a);
}
7、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
8、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
9、下面程序的功能是生成并打印某数列的前20 项,该数列第1,2项分别为0 和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20 个数存在一维数组x 中,并按每行4 项的形式输出。
main()
{
int x[21],i,j;
x[0]=0;
x[2]=1;
i=3;
do
{
x[i]= 【1】________;
x[i+1]= 【2】________;
i= 【3】________;
}
while (i<=20);
for (i=1;i<=20;i++)
{
printf("%5d",x[i]);
if (i%4==0)printf("\n");
}
}
10、当执行以下程序时,如果输入abc,则输出结果是:
#include <stdio.h>
#include <string.h>
void main()
{
char ss[10]="1,2,3,4,5";
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}

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

1、编写程序:编写input()和output()函数输入,输出5个学生的数据记录。
2、编程计算1+4+9+16+25+……+10000之和
3、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。