上海海洋大学C语言
本试卷为上海海洋大学C语言,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言
一、理论基础 (共20题,每题1分,共计10分)
(  C  ) 
1、执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为________。
(  D  ) 
2、下面合法的语句是________。
(  A  ) 
3、有以下定义:int a; long b; double x,y; 则以下选项中正确的表达式是________。
(  A  ) 
4、下列表示引用的方法中,( )是正确的。 已知:int m=10:
(  C  ) 
5、在下列选项中,不正确的表达式是________。
(  C  ) 
6、设以下变量均为int类型,表达式的值不为7的是________。
(  D  ) 
7、变量p为指针变量,若p=&a,下列说法不正确的有______。
(  B  ) 
8、数值型数据包括( )两种。
(  C  ) 
9、下列叙述中不正确的是________。
(  A  ) 
10、c语言的基本数据类型包括________。
(  C  ) 
11、下列声明和赋值语句错误的是________。
(  B  ) 
12、设a=8、b=10、c=7、d=8、m=2、n=6,执行(m=a<b)||(n=c>d) 后n的值为______。
(  A  ) 
13、设有定义语句:char c1=92,c2=92; ,则以下表达式中值为零的是______。
(  B  ) 
14、以下叙述中正确的是______。
(  D  ) 
15、下列结果不相同的是________。
(  A  ) 
16、若运行下面程序时,给变量a输入15,则输出结果是________。
(  A  ) 
17、设a=5、b=6、c=7、d=8、m=1、n=1,执行(m=a>b)&&(n=c>d)后n的值为______。
(  C  ) 
18、以下数值中,不正确的八进制数或十六进制数是________。
(  D  ) 
19、下列( )表达式的值为真,其中 a=5;b=8;c=10;d=0
(  A  ) 
20、对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是
二、控制结构 (共10题,每题1分,共计10分)
(  D  ) 
1、三种基本结构中,能简化大量程序代码的是________。
(  C  ) 
2、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
(  A  ) 
3、下列叙述中正确的是________。
(  A  ) 
4、下列程序的运行结果是________。
main()
{
int a=-5,b=1,c=1;
int x=0,y=2,z=0;
if(c>0)x=x+ y;
if(a<=0)
{
if(b>0) if(c<=0)y=x-y;
}
else if(c>0)y=x-y;
else z=y;
printf("%d,%d,%d\n",x,y,z);
}
(  C  ) 
5、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
(  C  ) 
6、下列程序的输出结果是________。
main ()
{
int a = 4, b = 5, c;
if (a < b)
{
c = a * b;
printf ("%d,%d,%d\n", b, a, c);
}
else
{
c = b / a;
printf ("%d,%d,%d\n", b, a, c);
}
}
(  B  ) 
7、以下if语句书写正确的是________。
(  D  ) 
8、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
(  D  ) 
9、执行下列程序段后,m 的值是________. int w=2,x=3,y=4,z=5,m; m=(w
(  C  ) 
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
(  A  ) 
1、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。
(  C  ) 
2、设有程序段: int k=12; while(k=1) k=k-1; 则下列描述中正确的是________。
(  B  ) 
3、若变量已正确定义,有以下程序段 i—o;
do printf("%d,",i);
while(i++);
printf("%d",i) 其输出结果是________。
(  A  ) 
4、当输入为"hello?"时,下面程序的执行结果是________。
main()
{
char c;
c=getchar();
while(c!='?')
{
putchar(e);
break;
}
}
(  D  ) 
5、在下列选项中,没有构成死循环的程序段是________。
(  C  ) 
6、下面对do-while结构的描述中,不正确的是________。
(  D  ) 
7、在c语言中,while和do…while循环的主要区别是________。
(  B  ) 
8、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是______。
(  D  ) 
9、有以下程序段int n=0,p;
do
{
scanf("%d",&p);
n++;
}
while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
(  B  ) 
10、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
四、数组/指针数组 (共10题,每题1分,共计10分)
(  C  ) 
1、avg功能是求整形数组中的前若干个元素的平均值,设数组元素个数最多不超过则下列函数说明语句错误的是________。
(  C  ) 
2、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9
};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]);的输出结果是________。
(  D  ) 
3、有以下程序
#include <stdio.h>
void fun(int *a, int n)/*fun函数的功能是将a所指数组元数从大到小排序*/
{
int t,i,j;
for(i=o;i<n-1;j++) for(j=j+1;j<n;j++) if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0} ,i;
fun(c+4,6);
for(i=0;i<10,i++) printf("%d,",c[i]);
}
程序的运行结果是________。
(  C  ) 
4、下面程序的输出结果是________。
#include<stdio.h>
main() {
char a[]='a','b','c','d','f','g',*p;
p=a;
printf("%c\n",*p+4);
}
(  D  ) 
5、下列能正确定义字符串的语句是________。
(  C  ) 
6、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s);
其输出结果为________。
(  A  ) 
7、下列数组说明中,正确的是________。
(  B  ) 
8、已有以下数组定义和f 函数调用语句, 则在f 函数的说明中,对形参数组array 的错误定义方式为________。int a[3][4]; f(a);
(  D  ) 
9、int a[10]; 合法的数组元素的最小下标值为____
(  D  ) 
10、下列哪个数组定义是正确的________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
(  B  ) 
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
(  A  ) 
2、以下不能正确进行字符串赋初值的语句是________。
(  A  ) 
3、下列四组字符串中都可以用作c语言程序中的标识符的是________。
(  C  ) 
4、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
(  D  ) 
5、以下正确的字符串常量是________。
(  C  ) 
6、以下能将字符串,you are luck!正确读入的语句组是________。
(  C  ) 
7、下列表达式中,类型可以作为int型的是________。
(  C  ) 
8、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
(  D  ) 
9、下面关于编译预处理命令,正确的是________。
(  A  ) 
10、设有以下语句, 若 0
六、函数/函数指针 (共10题,每题1分,共计10分)
(  C  ) 
1、在c程序中有如下语句:char *func(int x,int y); 它是________。
(  C  ) 
2、有以下函数定义:
void fun(int n, double x)
{
……
}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是________。
(  C  ) 
3、程序中对fun函数有如下说明 void*fun(); 此说明的含义是________。
(  A  ) 
4、以下对c语言函数的有关描述中,正确的是________。
(  D  ) 
5、以下叙述中错误的是________。
(  C  ) 
6、有以下程序
int add(int a,int b)
{
return(a+b);
}
main()
{
int k,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是______。
(  C  ) 
7、若有以下说明和定义union dt
{
int a;
char b;
double c;
}
data;
以下叙述中错误的是______。
(  D  ) 
8、有以下程序:
void swap1(int c0[],int c1[])
{
int t;
t=c0[0];
c0[0]=c1[0];
c1[0]=t;
}
void swap2(int *c0,int *c1)
{
int t;
t=*c0;
*c0=*c1;
*c1=t;
}
main()
{
int a[2]={3,5}, b[2]={3,5};
swap1(a,a+1);
swap2(&b[0],&b[1]);
printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);
}
程序运行后的输出结果是______。
(  C  ) 
9、以下与库函数strcmp(char*s,char*t) 的功能相等的程序段是________。
(  A  ) 
10、以下叙述中正确的是()。
七、指针 (共10题,每题1分,共计10分)
(  B  ) 
1、若有说明: int i,j=7, *p=&i; 则与i=j; 等价的语句是________。
(  C  ) 
2、c 语言中,若未说明函数的类型,则系统默认该函数的类型是 __________ 。
(  A  ) 
3、c语言程序的三种基本结构是顺序结构、循环结构和( )
(  C  ) 
4、若定义了int m,n=0,*p1=&m; 则与m=n等价的语句是________。
(  D  ) 
5、算法一般都可以用哪几种控制结构组合而成( )
(  C  ) 
6、下列关于数组初始化的说法,正确的是________。
(  D  ) 
7、有以下程序:
main()
{
int m=3,n=4,x;
x;
-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是________。
(  B  ) 
8、关于c语言中的全局变量,下列描述中正确的是________。
(  D  ) 
9、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是________。
(  B  ) 
10、以下叙述中正确的是()。
八、结构体 (共10题,每题1分,共计10分)
(  B  ) 
1、已知有如下结构体:
struct sk
{
int a;
float b;
}
data,*p;
若有p = &data,则对data的成员a引用正确的是________。
(  B  ) 
2、以下选项中不能正确把cl定义成结构体变量的是________。
(  B  ) 
3、有以下程序
#include <stdio.h>
struct ord
{
int x ,y;
}
dt[2]= {1,2,3,4 };
main()
{
struct ord *p=dt;
printf("%d,",++p->x);
printf("%d\n",++p->y);
}
程序的运行结果是________。
(  B  ) 
4、设有如下定义:
struct sk
{
int a ;
float b ;
}
data , *p ;
若有 p=&data ;
, 则对 data 中的 a 域的正确引用是______。
(  B  ) 
5、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
(  C  ) 
6、设有如下说明
typedef struct st
{
long a;
int b;
char c[2];
}
new;
则下面叙述中正确的是______。
(  A  ) 
7、有以下程序
struct stu
{
char num[10];
float score[3];
}
;
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
(  A  ) 
8、设有结构体的定义如下:
struct data
{
char c1;
char c2;
}
;
则sizeof(struct data)的值是________。
(  B  ) 
9、c语言中,定义结构体的保留字是________。
(  D  ) 
10、c语言中,switch后的括号内表达式的值可以是________。
九、程序题 (共10题,每题1分,共计10分)
(  C  ) 
1、有以下程序
#include <stdio.h>
int main()
{
int a = 1, b = 2, c = 3, d = 0;
if (a == 1 && b++ == 2)
if (b != 2 || c-- != 3)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
}
程序运行后的输出结果是________。
(  D  ) 
2、下面程序输出的是________。
main()
{
int t=l;
fun(fun(t));
}
fun(int h)
{
static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);
}
(  B  ) 
3、以下程序运行后,输出结果是________。
#define PT 5.5
#define S(x) PT*x*X
main()
{
int a=1,b=2:;
printf("%4.1f\n",s(a+b));
}
(  B  ) 
4、有以下程序 #include <stdio.h>
main() {
int a=1,b=2;
while(a<6){
b+=a;
a+=2;
b%=10;
}
printf("%d,%d\n",a,b);
} 程序运行后的输出结果是________。
(  D  ) 
5、阅读下面的程序
#include<stdio.h>
void main()
{
int i,j;
i=010;
j=9;
printf("%d,%d",i-j,i+j);
}
则程序的运行结果是 __________.
(  B  ) 
6、以下程序的输出结果是 __________.
#include<stdio.h>
void main()
{
int a[4][4]={{1,3,5,},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][0],a[1][1],a[2][2],a[3][3]);
}
(  B  ) 
7、请阅读下面的程序,选择正确的输出结果。( )
void main()
{
printf("%d",null);
}
(  B  ) 
8、以下程序的输出结果是______。
#include<stdio.h>
main()
{
printf("%d\n",null);
}
(  A  ) 
9、请读程序:
main()
{
int a=1,b=2;
printf(""%d\n"",a=a+1,a+6,b+2);
}
则上面程序的输出结果是________。
(  B  ) 
10、下面程序的运行结果是________。
fun(int p)
{
int k=1;
static t=2;
k=k+1;
t=t+1;
return(p*k*t);
}
main( )
{
int x=4;
fun(x);
printf(''%d\n'',fun(x));
}
相关标签:
- C语言
 - 上海海洋大学