上海海洋大学2023年C语言专升本试题

本试卷为上海海洋大学2023年C语言专升本试题,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。

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

C语言专升本试题

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

(  C  )
1、有一函数, ,以下程序段中不能根据x值正确计算出y值的是________。
A、if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
B、y=0;
if(x>0) y=1;
else if(x<0) y=-1;
C、y=0;
if(x>=0);
if(x>0) y=1 ;
else y=-1;
D、if(x>=0)
if(x>0) y=1;
else y=0;
else y=-1;
(  D  )
2、已有定义:int x=3,y=4,z=5; ,则表达式!(x+y)+z-1 && y+z/2的值是________。
A、6
B、0
C、2
D、1
(  D  )
3、若要定义一个具有5个元素的整型数组,以下错误的定义语句是________。
A、int a[5]={0};
B、int b[]={ 0,0,0,0,0 }
C、int c[2+3];
D、int i=5,d[i];
(  B  )
4、下面的程序
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x));
}
A、输出的是1
B、输出的是1和-2
C、输出的是3和0
D、是死循环
(  C  )
5、以下程序段的输出结果是________。 int k,n,m;
n=10;
m=1;
k=1;
while (k<=n)
{
m*=2;
k+=4;
}
printf("%d\n",m);
A、4
B、16
C、8
D、32
(  D  )
6、以下叙述正确的是________。
A、在C程序中,主函数必须位于程序的最前面
B、在C程序中,一行只能写一条语句
C、C程序的基本结构是程序行
D、C语句是完成某种程序功能的最小单位
(  A  )
7、在c语言中(以16位pc机为例),五种基本数据类型存储空间长度的排列顺序是________。
A、char<int<long int<=float<double
B、char=int<long int<=float<double
C、char<int<long int=float=double
D、char=int=long int<=float<double
(  B  )
8、当调用函数时,实参是一个数组名,则向函数传送的是 _______ 。
A、数组的长度
B、数组的首地址
C、数组每一个元素的地址
D、数组每个元素中的值
(  A  )
9、以下关于return语句的叙述中不正确的是________。
A、一个自定义函数中必须有一条return语句
B、一个自定义函数中可以根据不同情况设置多条return语句
C、如果一个函数有多个return语句,那么不论运行到哪一个return语句,该函数将结束
D、没有return语句的自定义函数在执行完最后一条语句时返回到调用处
(  D  )
10、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+ b/b的值是________。
A、6.500000
B、6
C、5.500000
D、6.000000
(  A  )
11、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式
B、必须是逻辑表达式
C、必须是逻辑表达式或关系表达式
D、必须是关系表达式
(  A  )
12、以下选项中,不能正确赋值的是 ______。
A、char s1[10];s1="chest";
B、char s2[]='C','t','e','s','t';
C、char s3 [20]="Chest";
D、char * s4="Cest\n"
(  A  )
13、以下不能用于实型数据的运算符是________。
A、%
B、/
C、*
D、+
(  B  )
14、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  D  )
15、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
A、scanf("%d",&(*p).age);
B、scanf("%c",&std[0].gender);
C、scanf("%c",&(p->gender));
D、scanf("%s",&std.name);
(  A  )
16、下列程序执行后的输出结果是________。
main()
{
int x='f';printf("%c”,'A'+(x-‘a’+1));
}
A、G
B、H
C、I
D、J
(  B  )
17、定义file *fp; 则文件指针fp 指向的是________。
A、文件在磁盘上的读写位置
B、文件在缓冲区上的读写位置
C、整个磁盘文件
D、文件类型结构体
(  A  )
18、设有以下代码其中,循环体 a 与循环体 b 相同,以下叙述正确的是________。
A、循环体 A 与循环体 B 的执行次数相同
B、循环体 A 比循环体 B 的执行次数多一次
C、循环体 A 比循环体 B 的执行次数少一次
D、循环体 A 与循环体 B 的执行次数不确定
(  B  )
19、下面语句中( )是c 语言的正确赋值语句。
A、a=1,b=2
B、I++;
C、a=b=5
D、y=int(x);
(  A  )
20、以下叙述中错误的是
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识符应尽量做到"见名知意"
C、用户所定义的标识符必须以字母或下划线开头
D、用户定义的标识符中,大、小写字母代表不同标识

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

(   F  )
1、字符串常量是由一对单引号括起来的字符序列。 
(   T  )
2、指针数组的每一个元素都是指针变量,且都指向相同的数据类型。 
(   F  )
3、对于一个具体的函数来说,实参与形参不必一一对应。 
(   F  )
4、while循环中不能再定义另一个循环。 
(   F  )
5、c语言函数返回类型的默认定义类型是
void。 
(   F  )
6、c语言规定, else 子句总是与它上面的最近的if 配对 
(   T  )
7、表达式!( x>0||y>0 )等价于!(x>0)&&!(y>0) .() 
(   F  )
8、全局变量的作用域是整个源程序文件。 
(   T  )
9、break 语句不能够单独使用,只能用于循环语句和switch 语句 
(   T  )
10、fseek函数一般用于二进制文件。 

三、填空题 (共5题,每题4分,共计20分)

1、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:________ 。
2、执行下面的程序段后,*p等于【1】。
int a[5]={1,3,5,7,9},*p=a; p++;
3、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
4、下面程序的功能是:输出100以内能被3整除且个位数为6的 所有整数,请填空。
5、在C语言中的实型变量分为两种类型,它们是 ___和浮点型。

四、程序分析题 (共4题,每题5分,共计20分)

1、下列程序段的运行结果是________。
void sun()
{
int b=5;
}
main()
{
int b=1;
sun();
printf("b=%d",b);
}
2、以下程序运行的结果为________。
#include <stdio.h>
#include <string.h>
#define MOD(x,y) x%y
main( )
{
int i=3, j=8, k=5;
printf("%d\n", MOD(i+k,i-j));
}
3、函数del 的作用是删除有序数组a 中的指定元素x。已有调用语句n=del(a,n,x);
其中实参n 为删除数组元素的个数,赋值号左边的n 为删除后数组元素的个数。请填空。del(int a[],int n,int x)
{
int p,i;
p=0;
while (x>=a[p]&&p<n)【1】________;
for(i=p-1;i<n;i++)【2】________;
n=n-1;
return n;
}
4、当从键盘输入-1 0<cr>, 则以下程序的运行结果是________。
#include<stdio.h>
main()
{
int a,b,m,n;
m=n=1;
scanf("%d%d",&a,&b);
do
{
if(a>0)
{
m=2*n;
b++;
}
else
{
n=m+n;
a+=2;
b++;
}
}
while(a==b);
printf("m=%d n=%d\n",m,n);
}

五、编程题 (共3题,每题0分,共计50分)

1、编写程序:判断输入字符的字母的个数,以*结束输出。
2、编写程序:求两个正整数m,n之间的非素数之和(包含m和n)
例如: 如果数组m=2,n=20,则程序的输出应为:sum is: 132()
3、用一个数组存放图书信息,每本书是一个结构,包括下列几项信息书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息然后打印出以上信息,使用结构体实现。