上海海洋大学2023年计算机C语言样卷

本试卷为上海海洋大学2023年计算机C语言样卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

计算机C语言样卷

一、理论基础 (共20题,每题1分,共计10分)

(  B  )
1、有以下程序段 int j;
float y;
char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abe后,y的值为( )。
A、55566.0
B、566.0
C、7777.0
D、566777.0
(  D  )
2、下列选项中不会引起二义性的宏定义是________。
A、#define S(x)X*x
B、#define S(x) (x)*(x)
C、#define S(x) (x*x)
D、#define S(x) ((x)*(x))
(  A  )
3、设有定义:int a=2,b=3,c=4; ,则以下选项中值为0的表达式是________。
A、(!a==1)&&(!b==0)
B、(a
C、a && b
D、a||(b+b)&&(c-a)
(  D  )
4、设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是________。
A、b=1.0/a
B、b=(float)(1/a)
C、b=1/(float)a
D、b=1/(a*1.0)
(  D  )
5、不合法的常量是: 。
A、‘ \2 ’
B、" "
C、‘ 3 ’
D、‘ \483 ’
(  B  )
6、设有以下语句,则z的二进制值是 char x=3,y=6,z; z=x^y<<2:
A、00010100
B、00011011
C、00011100
D、00011000
(  A  )
7、下面关于形参与实参的说法,正确的是________。
A、形参与实参的个数、类型、顺序都应一一对应
B、形参与实参的个数可以不必相同,少一个多一个程序一样执行
C、形参与实参的类型可以不同,不影响运算结果
D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可
(  B  )
8、下列常数中,不合法的c常量是________。
A、-0x3b1
B、123e+2.3
C、'}'
D、6e+7
(  C  )
9、在下列字符序列中,不可用做c语言标识符的是________。
A、student___num
B、class
C、#88
D、month___12
(  B  )
10、下列可用于c语言用户标识符的一组是________。
A、void,define,WORD
B、a3_b3,_123,Car
C、For,-abc,IF Case
D、2a,DO,sizeof
(  C  )
11、设有定义int x; float y; 则10+x+y值的数据类型是________。
A、int
B、double
C、float
D、不确定
(  A  )
12、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。
A、++x,y=x--
B、x+l=y
C、x=x+10=x+y
D、double(x)/10
(  C  )
13、下面判断正确的是________。
A、char*a="china";等价于char *a;*a="china";
B、char str[5]="china";等价于char str[]="china";
C、char*S="china";等价于char *S;S="china";
D、char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
(  A  )
14、以下关于c/c语言指针变量的叙述中,正确的是________。
A、指针变量可以是全局变量也可以是局部变量
B、必须为指针变量与指针所指向的变量分配相同大小的存储空间
C、对指针变量进行算术运算是没有意义的
D、指针变量必须由动态产生的数据对象来赋值
(  B  )
15、c语言提供的合法的数据类型关键字是______?
A、Double
B、float
C、integer
D、Char
(  A  )
16、设有定义:int a=64,b=8; 则表达式(a&b)||(a&&b)和(a|b)&&(a||b)的值分别为
A、1 和 1
B、1 和 0
C、0 和 1
D、0 和 0
(  B  )
17、若有以下程序段:int a=3,b=4; a=a^b; b=b^a; a=a^b; 则执行以上 语句后,a和b的值分别是________。
A、a=3,b=4
B、a=4,b=3
C、a=4,b=4
D、a=3,b=3
(  C  )
18、下列程序段的输出结果为________。 int x=3,y=2; printf("%d",(x-=y,x*=y+8/5));
A、1
B、7
C、3
D、5
(  A  )
19、c风格的注释* c 风格的注释,也称块注释或多行注释,以 ▁▁▁ 开始,以 ▁▁▁ 结束。
A、/* 和 */
B、{ 和 }
C、[ 和 ]
D、( 和 )
(  D  )
20、若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为____
A、j=3, k=3
B、j=3, k=4
C、j=4, k=4
D、j=4, k=3

二、控制结构 (共10题,每题1分,共计10分)

(  A  )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
A、if (x>0) y=1;
else if(x<0)y=-1;
else y=0;
B、if(x)
if(x>0)y=1;
else if(x<0)y=-1;
else y=0;
C、y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D、y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
(  D  )
2、三种基本结构中,能简化大量程序代码的是________。
A、顺序结构
B、分支结构
C、选择结构
D、重复结构
(  A  )
3、下列程序的输出结果是________。
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A、19
B、1
C、6
D、8
(  D  )
4、c语言对嵌套的if语句的规定是:else总是与 配对。
A、与之前最近的if
B、第一个if
C、缩进位置相同的if
D、与之前最近的且尚未配对的if
(  A  )
5、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
A、非0 0
B、0 1
C、非0非0
D、1 1
(  A  )
6、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
A、可以是任意合法的数值
B、必须是整数值
C、必须是正数
D、必须是逻辑值
(  C  )
7、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y && y!=0);
C、if(x>0) x--
D、if(y<0) {;}
(  A  )
8、main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;}
printf("a=%d,b=%d",a,b);}
该程序的输出结果是( )
A、2,1
B、1,1
C、1,0
D、2,2
(  C  )
9、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
A、a*b/a*b==1
B、a/b*b/a==1
C、a/b*b+a%b==a
D、a/b*b==a
(  D  )
10、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
A、-1
B、1
C、非零的数
D、0

三、循环结构 (共10题,每题1分,共计10分)

(  D  )
1、以下程序的输出结果是
main( )
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if (b>=10) break;
if (b%5==1)
{
b+=5;
continue;
}
}
printf("%d\n",a);
}
A、101
B、6
C、4
D、3
(  C  )
2、有以下程序
main()
{
int k=4,n=0;
for( ; n<k ; )
{
n++;
if(n%3!=0) continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。
A、1,1
B、2,2
C、3,3
D、4,4
(  D  )
3、下面程序的输出结果是 ____________.
main( )
{
int i,k=0, a=0, b=0;
for(i=1;i<=4;i++)
{
k++;
if (k%2==0)
{
a=a+k;
continue;
}
b=b+k;
a=a+k;
}
printf("k=%d a=%d b=%d\n",k,a,b);
}
A、k= 5 a =10 b=4
B、k= 3 a =6 b=4
C、k= 4 a =10 b=3
D、k= 4 a =10 b=4
(  D  )
4、给定下面的代码: int i=1,j=10;
do
{
if(i++>--j) continue;
}
while(i<5) 执行完之后,i与j的值分别是多少 ( )
A、i=6,j=5
B、i=5,j=5
C、i=6,j=4
D、i=5,j=6
(  C  )
5、下列语句中执行跳转功能的语句是________。
A、for语句
B、while语句
C、continue语句
D、switch语句
(  D  )
6、已知:int a,b; 下列switch语句中,( )是正确的。
A、switch (a)
case a: a++;break;
case b: b++;break;
B、switch(a+b)
case 1:a+b;break;
case 1:a-b
C、switch(a*a)
case 1,2:++a;
case 3, 4:++b:
D、switch(a/10+b)
case 5:a/5:break:
default:a+b;
(  C  )
7、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
A、x=8
B、x=4
C、x=6
D、x=12
(  B  )
8、有如下程序
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++) printf("%d\n"i)
}
该程序中的for循环执行的次数是______。
A、5
B、6
C、7
D、8
(  B  )
9、若有程序段:x=99; while(x-2) x--; 则循环结束时,x=________。
A、99
B、2
C、1
D、0
(  C  )
10、下面程序段。x=3;
do
{
y=x--;
if(!y)
{
printf("*");
continue;
}
printf("#");
}
while(1<=x<=2);
A、将输出##
B、将输出###*
C、是死循环
D、含有不合法的控制表达式

四、数组/指针数组 (共10题,每题1分,共计10分)

(  D  )
1、若要定义一个具有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  )
2、若有以下数组说明,则i=10; a[a[i]]元素数值是________。 int a[12]= { 1,4,7,10,2,5,8,11,3,6,9,12 } ;
A、10
B、9
C、6
D、5
(  B  )
3、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
A、*ia
B、a[10]
C、*a
D、a[ia-a]
(  B  )
4、若数组a定义为int[][]a=new int[3][4],则a是________。
A、一维数组
B、二维数组
C、三维数组
D、四维数组
(  A  )
5、执行下面的程序段后,变量k的值为________。 int k=3,s[2]; s[0]=k; k=s[1]*10;
A、不定值
B、33
C、30
D、10
(  A  )
6、下面程序的运行结果是
#include<stdio.h>
main()
{
static char a[]="languagef" ,b[]="programe";
char *p1,*p2;
int k;
p1=a;
p2=b;
for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
A、gae
B、ga
C、LanSuage
D、有语法错
(  B  )
7、c语言中,数组名代表________。
A、数组全部元素的值
B、数组首地址
C、数组第一个元素的值
D、数组元素的个数
(  B  )
8、若有说明: static int a[3][4];
则数组中各元素________。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0
(  A  )
9、下列数组说明中,正确的是()。
A、static char str[]="China";
B、static char str[]; str="China";
C、static char str1[5],str2[]={"China"}; str1=str2;
D、static char str1[],str2[];str2={"China"}; strcpy(str1,str2);
(  A  )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用
int a[]={1,2,3,4,5},*p,i;
p=a;
A、*(a+2)
B、a[p-3]
C、p+2
D、a+3

五、字符串/字符串指针 (共10题,每题1分,共计10分)

(  D  )
1、以下能正确定义字符串的语句是________。
A、char str[]={′\064′};
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  A  )
2、以下不能正确进行字符串赋初值的语句是________。
A、char str[5]="good!";
B、char str[]="good!";
C、char *str="good!";
D、char str[5]={‘g',‘o',‘o',‘d'};
(  A  )
3、下列数据中属于"字符串常量"的是________。
A、“a”
B、{
ABC}
C、‘abc\0’
D、‘a’
(  D  )
4、下列字符串中不能作为c标识符使用的是________。
A、WHILE
B、user
C、_lvar
D、9stars
(  B  )
5、设有两个字符串p和q,其中q是p的子串,把q在p中首次出现的位置作为子串q在p中位置的算法称为 (43) 。
A、求子串
B、匹配
C、连接
D、求串长
(  D  )
6、下列关于boolean类型的叙述中,正确的是________。
A、可以将boolean类型的数值转换为int类型的数值
B、可以将boolean类型的数值转换为字符串
C、可以将boolean类型的数值转换为char类型的数值
D、不能将boolean类型的数值转换为其他基本数据类型
(  D  )
7、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
A、12
B、15
C、6
D、5
(  B  )
8、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
A、0
B、3
C、7
D、8
(  D  )
9、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
A、xy,aaaacc
B、aaaacc,xy
C、XCC,aabcc
D、ace,xabcc
(  D  )
10、若有char s1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串 s1 大于字符串 s2 时,输出 s2 的语句是()。
A、if(strcmp(s1,s1)>0)puts(s2);
B、if(strcmp(s2,s1)>0)puts(s2);
C、if(strcmp(s2,t)>0)puts(s2);
D、if(strcmp(s1,t)>0)puts(s2);

六、函数/函数指针 (共10题,每题1分,共计10分)

(  C  )
1、有以下程序片段:
y=-1;
if(x!=0)
if(x>0) y=1;
else y=0;
其能正确表示的数学函数关系是________。
A、-1(x-<0)
B、1(x<0)
0(x=0) -1(x=0)
1(x>0) 0(x>0)
C、0(x<0)
D、-1(x<0)
-1(x=0) 1(x=0)
1(X>0) 0(x>0)
(  C  )
2、以下叙述正确的是________。
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用min作为主函数名,程序将从开始执行,在此结束
D、min可作为用户标识符,用以命名任意一个函数作为主函数
(  A  )
3、是构成c语言程序的基本单位。
A、函数
B、过程
C、子程序
D、子例程
(  D  )
4、对以下程序,正确的说法是 __________. sub (char x,char y)
{
int z;
z=x%y;
return z;
}
void main( )
{
int g=5,h=3,k;
k=sub(g,h);
printf("%d\n",k);
}
A、实参与其对应的形参类型不一致,程序不能运行
B、被调函数缺少数据类型说明,程序不能运行
C、主函数中缺少对被调函数的说明语句,程序不能运行
D、程序中没有错误,可以正常运行
(  D  )
5、以下有关function过程的说法中,正确的是______ 。
A、函数名在过程中只能被赋值一次
B、如果在函数体内没有给函数名赋值,则该函数无返回值
C、如果在定义函数时没有说明函数的类型,则该函数是无类型的
D、执行函数过程中的Exit Function语句,将退出该函数,返回到调用点
(  A  )
6、若有函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b,))); 那么在此函数调用语句中实参的个数是________。
A、3
B、4
C、5
D、6
(  B  )
7、关于过程、自定义函数的调用,正确的叙述是________。
A、实参的数量必须等于形参的数量,它们是一对应的关系
B、实参的数量可以少于形参的数量,多余的形参取逻辑假
C、实参的数量可以多于形参的数量,多余的实参被忽略
D、实参的数量可以多于形参的数量,多余的实参取逻辑假
(  B  )
8、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符)
A、ЦЦЦ1,2,3<回车>
B、1Ц2Ц3<回车>
C、1,ЦЦЦ2,ЦЦЦ3<回车>
D、1,2,3<回车>
(  A  )
9、下列程序的运行结果是________。
#include<stdio.h>
void fun(int*s,int*p) {
static int t=3;
*p=s[t];
t--;
}
main()
{
int a[]= { 2,3,4,5}, k;
int x;
for(k=0;k<4;k++) {
fun(a,&x);
printf("%d,",x);
}
}
A、5,4,3,2
B、2,3,4,5,
C、2,2,2,2,
D、5,5,5,5,
(  C  )
10、函数调用时,基本的参数传递方式有传值与传地址两种, (23) 。
A、在传值方式下,形参将值传给实参
B、在传值方式下,实参不能是数组元素
C、在传地址方式下,形参和实参间可以实现数据的双向传递
D、在传地址方式下,实参可以是任意的变量和表达式

七、指针 (共10题,每题1分,共计10分)

(  D  )
1、c语言源程序的最小单位是________。
A、程序行
B、语句
C、函数
D、字符
(  C  )
2、若在定义语句:int a,b,c*p=&c; 之后,接着执行以下选项中的语句,则能正确执行的语句是________。
A、scanf(“%d”,a,b,c);
B、scanf(“%d%d%d”,a,b,c);
C、scanf(“%d”,p);
D、scanf(“%d”,&p)
(  C  )
3、以下关于数组的描述正确的是______。
A、数组的大小是固定的,但可以有不同的类型的数组元素。
B、数组的大小是可变的,但所有数组元素的类型必须相同。
C、数组的大小是固定的,但所有数组元素的类型必须相同。
D、数组的大小是可变的,但可以有不同的类型的数组元素。
(  A  )
4、若主调用函数类型为 double ,被调用函数定义中没有进行函数类型说明,而 return 语句中的表达式类型为 float 型,则被调函数返回值的类型是 __________ 。
A、int 型
B、float 型
C、double 型
D、由系统当时的情况而定
(  D  )
5、设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]= {0,1,2,3,4,5,6,7,8,9 },*p=a;
A、a[p-a]
B、*(&
C、p
D、*(*(a +)
(  C  )
6、下列说法不正确的是________。
A、C语言程序是以函数为基本单位的,整个程序由函数组成
B、C语言程序的一条语句可以写在不同的行上
C、C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写
D、C语言程序的每个语句都以分号结束
(  B  )
7、设
void f1 (int *m,long & n);
int a; long b;
则以下调用合法的是______ 。
A、f1 (a,b);
B、f1(&a,b);
C、f1(a,&b);
D、f1(&a,&b);
(  D  )
8、若有说明:int *p,m=5,n; 以下正确的程序段是________。
A、p=&n;scanf("%d",&p);
B、p=&n;scanf("%d",*p)
C、scanf("%d",&p;*p=6);
D、p=&n;*p=m;
(  D  )
9、下列程序的输出结果是________。
void f(int*x,int*y)
{
int t;
t=*x,*x=*y;
*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&a[7];
while(p<q)
{
f(p,q);
p++;
q--;
}
for(i=0;i<8;i+)printf("%d,",a[i]);
}
A、8,2,3,4,5,6,7,1
B、5,6,7,8,1,2,3,4
C、1,2,3,4,5,6,7,8
D、8,7,6,5,4,3,2,1
(  A  )
10、若有说明:long *p,a; 则不能通过scanf语句正确给输入项读入数据的程序段是______。
A、*p=&a;scanf("%ld",p);
B、p=&a;scanf("%ld",p);
C、scanf("%ld",p=&a);
D、scanf("%ld",&a);

八、结构体 (共10题,每题1分,共计10分)

(  C  )
1、有以下程序
struct stu
{
char name[10];
int num;
int score;
}
;
main( )
{
struct stu s[5]={{"yangsan",20041,703} , {"lisiguo",20042,580 , {"wangyin",20043,680}, {"sundan",20044,550}, {"penghua",20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score>p[j]->score)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
printf("5d %d\n",s[1].score,p[1]->score);
}
执行后输出结果是________。
A、550 550
B、680 680
C、580 550
D、580 680
(  C  )
2、若有以下说明语句:
struct date
{
int year;
int month;
int day;
} brithday;
则下面的叙述不正确的是_____.
A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
(  C  )
3、有以下程序段
typedef struct node
{
int data;
struct node * next;
}
* node;
node p;
以下叙述中正确的是________。
A、p是指向struct node结构变量的指针的指针
B、NODEp;语句出错
C、p是指向struct node结构变量的指针
D、p是struct node结构变量
(  B  )
4、c语言中的基本数据类型是________。
A、整型、浮点型、逻辑型、无值型和类类型
B、整型、字符型、浮点型、无值型和逻辑型
C、整型、浮点型、字符型、逻辑型和枚举型
D、整型、浮点型、逻辑型、无值型和指针型
(  B  )
5、已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义
struct a*f(int t1,int*t2,struct a t3,struct a*t4) struct a p,*p1;
int i;
则正确的函数调用语句为
A、&p=f(10,&i,p,p1);
B、p1=f(i++,(int*)p1,p,&p);
C、p=f(i+1,&(i+2),*p,p);
D、f(i+1,&i,p,p);
(  D  )
6、若有以下说明和语句:
struct st
{
int n;
char *ch;
}
;
struct st a[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a 则值为6的表达式是______。
A、p++->n
B、p->n++
C、(*.n++
D、++p->n
(  B  )
7、以下选项中,能定义m为合法的结构体变量的是______。
A、typedef struct abc {
double a;char b;} m;
B、struct {
double a;char b;}m;
C、struct ABC {
double a;char b;} ABC m;
D、typedef ABC{
double a;char b; } ABC m;
(  D  )
8、设有以下语句
typedef struct tt
{
char c;
int a[4];
}
cin;
则下面叙述中正确的是______。
A、可以用TT定义结构体变量
B、TT是struct类型的变量
C、可以用CIN定义结构体变量
D、CIN是struct TT类型的变量
(  A  )
9、以下叙述中正确的是________。
A、使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的
B、结构体类型中的各个成分均不能是数组或指针
C、结构体类型的变量,不能在声明结构体类型组成时一起定义
D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
(  A  )
10、定义共用体的关键字是________。
A、union
B、enum
C、struct
D、typedef

九、程序题 (共10题,每题1分,共计10分)

(  C  )
1、有以下程序:
main()
{
int x,i;
for(i=l;i<=50;i++)
{
x=i: if(x%2=0) if(x%3=0) if(x%7=0) printf("%d,i)";
}
}
输出结果是________。
A、28
B、27
C、42
D、4l
(  D  )
2、阅读下面的程序
main()
{
int i,j;
char ch;
scanf("%d%c%f",&i,&ch,&j);
printf("%d%2c%7.2f",i,ch,j);
}
如果从键盘上输入 123a123x.12<回车> 则程序的运行结果是________。
A、123a123.00
B、123 a 123.12
C、123a123.12
D、123 a 123.00
(  B  )
3、下面程序段的运行结果是 ____________.
int n=0;
while (n++<=2) printf("%d",n);
A、012
B、123
C、234
D、错误信息
(  D  )
4、以下程序执行时输入 language programming< 回车 > , 输出结果是 __________.
#include <stdio.h>
void main( )
{
char str[30];
gets(str);
printf("str=%s\n",str);
}
A、Language Programming
B、Language
C、str=Language
D、str=Language Programming
(  D  )
5、有如下程序
main( )
{
int a[3][3]={{1,2,3},{3,4,5},{5,6,7}}, i,j,s = 0;
for(i=0; i<3; i++)for(j=0; j<=i; j++) s+=a[i][j]];
printf("%d\n",s);
}
该程序的输出结果是______。
A、18
B、19
C、36
D、26
(  A  )
6、下面程序的输出结果是______。
main( )
{
int a[]={1,2,3,4,5,6,7,8,9,0},*t;
t=a;
printf("%d\n",*(t+3));
}
A、4
B、5
C、6
D、3
(  A  )
7、有以下程序段int m=0,n=0;
char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10a10↙,则输出结果是______。
A、10,A,10
B、10,a,10
C、10,a,0
D、10,A,0
(  D  )
8、有以下程序
void sum(int a[])
{
a[0]=a[1]+a[2];
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
程序运行后的输出结果是______。
A、6
B、7
C、5
D、9
(  A  )
9、程序段如下int k=0;
while(k++<=2) printf ("%d\n", k);
则执行结果是________ 。
A、1
B、2
C、0
D、无结果
(  B  )
10、下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf("\n%d",ar);
}
A、192
B、29
C、27
D、25