上海海洋大学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语言
- 上海海洋大学