太原科技大学2023年C语言

本试卷为太原科技大学2023年C语言,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

C语言

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

(  D  )
1、下列条件语句中输出结果与其他语句不同的是________。
A、if(a) printf(“%d\n”,x);
else printf(“%d\n”,y);
B、if(a==0) printf(“%d\n”,y);
else printf(“%d\n”,x);
C、if(a!=0) printf(“%d\n”,x);
else printf(“%d\n”,y);
D、if(a==0) printf(“%d\n”,x);
else printf(“%d\n”,y);
(  A  )
2、表达式'5'-'1'的值是________。
A、整数4
B、字符4
C、表达式不合法
D、字符6
(  C  )
3、下列选项中不合法的十六进制数是________。
A、"0"xff
B、"0"X11
C、"0"x1g
D、”0”Xabc
(  B  )
4、数据的存储结构是指________。
A、数据所占的存储空间
B、数据的逻辑结构在计算机中的存放形式
C、数据在计算机中的顺序存储方式
D、存储在计算机外存中的数据
(  A  )
5、有以下定义:int a; long b; double x,y; 则以下选项中正确的表达式是________。
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x
(  C  )
6、若以下选项中的变量已正确定义,则正确的赋值语句是________。
A、x1=26.8%3;
B、1+2=x2;
C、x3=0x12;
D、x4=1+2=3;
(  D  )
7、设整型变量 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)
(  B  )
8、数据是信息的符号表示; 信息是数据的内涵,是数据的________。
A、语法解释
B、语义解释
C、语句说明
D、用法说明
(  C  )
9、执行下列语句后,i和n的值为 ( ) int i=10; int n=i++%5;
A、10,0
B、10,1
C、11,0
D、11,1
(  D  )
10、若有表达式(w)(--x):(++y),则其中与w等价的表达式是________。
A、w==1
B、w==0
C、w!=1
D、w!=0
(  B  )
11、数值型数据包括( )两种。
A、整型和长整型
B、整型和浮点型
C、单精度型和双精度型
D、整型实型和货币型
(  A  )
12、以下是正确 c 语言标识符的是________。
A、_3
B、#3
C、&3
D、-3
(  D  )
13、下列选项中用于判断ch是否是字符的表达式是________。
A、( 'a' <= ch <= 'z' ) || ( 'A' <= ch <= 'Z' )
B、( 'a' <= ch <= 'z' ) && ( 'A' <= ch <= 'Z' )
C、( ch >= 'a' && ch <= 'z' ) && ( ch >= 'A' && ch <= 'Z' )
D、( ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z' )
(  A  )
14、在int a[ ][3] = {{1,4}, {3,2}, {4,5,6}, {0}};
中,a[2][1]的值是________。
A、5
B、0
C、6
D、2
(  B  )
15、下列语句合法的是________。
A、4+c=b=0 ;
B、a=++c;
C、a=2=b=6;
D、a=4++;
(  C  )
16、在c语言中,只有在使用时才占用内存单元的变量,其存储类型是________。
A、auto和static
B、extern和register
C、auto和register
D、static和register
(  D  )
17、若希望当a的值为奇数时,表达式的值为真;
a的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是________。
A、A%2==1
B、!(A%2==0)
C、A%2
D、!(A%2)
(  C  )
18、使用"scanf("x=%f,y=%f",&x,&y)",要使 x,y均为1.25,正确的输入是________。
A、1.25,1.25
B、1.25 1.25
C、X=1.25,y=1.25
D、X=1.25 y=1.25
(  C  )
19、若有说明:int *p1,*p2,m=5,n;
以下均是正确赋值语句的选项是________。
A、p1=&m;
B、p1=&m;p2=&n;*p1=*p2;
C、p1=&m;p2=p1;
D、p1=&m;*p2=*p1;
(  D  )
20、下述c 语言转义符中( )是非法的。
A、'\b'
B、'\037'
C、'\0xf '
D、'\''

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

(  B  )
1、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
A、if(x>0)y=1;
B、if(x)
else if(x>0)y=1;
else y=0; else if(x%0)y=-1;
else y=0;
C、y=-1
D、y=0;
if(x) if(x>=0)
if(x>O)y=1; if(xi>=O)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
(  A  )
2、下列程序的输出结果是________。
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  )
3、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
A、10
B、11
C、12
D、13
(  B  )
4、c语言对嵌套if语句的规定是:else总是与( ) 。
A、其之前最近的if配对
B、其之前最近的且尚未配对的if配对
C、缩进位置相同的if配对
D、第一个if配对
(  C  )
5、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
A、2,0
B、5,0
C、5,5
D、2,5
(  C  )
6、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
A、a!=4||b==1
B、'a'%3
C、'a'=1/2
D、'a'+32
(  C  )
7、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y&&y!=0);
C、if(x>0)x- else y++;
D、if(y<0){;} else x++;
(  C  )
8、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
A、0,1,2
B、1,2,3
C、1,1,3
D、1,2,2
(  D  )
9、执行下列程序段后,m 的值是________.
int w=2,x=3,y=4,z=5,m;
m=(w
A、4
B、3
C、5
D、2
(  A  )
10、执行下面语句后的输出为____
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
A、****
B、%%%%
C、%%%%C
D、有语法错,不能执行

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

(  A  )
1、有以下程序:
main()
{
int c=0,k;
for(k=1;k<3;k++)
switch(k)
{
default:c+=k;
case2:c++;
break;
case4:c+=2;
break;
}
printf("%d\n",c);
}
程序运行后的输出结果是________。
A、3
B、5
C、7
D、9
(  D  )
2、有以下程序
#include <stdio.h>
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1: switch(y)
{
case 0: a++;
break;
case 1: b++;
break;
}
case 2: a++;
b++;
break;
case 3: a++;
b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是________。
A、a=1,b=0
B、a=2,b=2
C、a=1,b=1
D、a=2,b=1
(  A  )
3、以下for语句中不是死循环的是________。
A、for(int i=0;i<1;i++);
B、for(int i=0;i++);
C、for(int i=1;i>0;++i);
D、for( ;;);
(  C  )
4、程序的基本控制结构是______。
A、顺序结构,多分支结构和单分支结构
B、顺序结构,支结构和循环结构
C、顺序结构,选择结构和循环结构。
D、单行结构和多行结构。
(  A  )
5、下列描述中,符合结构化程序设计风格的是________。
A、使用顺序、选择和重复(循环) 三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的存储效率
D、使用goto语句跳转
(  C  )
6、运行下面程序时,从键盘输入字母h,则输出结果是
#include<stdio.h>
main()
{
char ch;
ch=getchar();
switch(ch) {
case ’h’: printf("hello!\n");
case ’g’: printf("good morning!\n");
default : printf("bye_bye!\n");
}
}
A、Hello!
B、Hello!
GoodMoring!
C、Hello!
Goodmorning!
Bye_Bye!
D、Hello!
Bye_Bye!
(  B  )
7、执行下面程序片段的结果是______。int x=23;
do
{
printf("%2d",x--);
}
while(!x);
A、打印出321
B、打印出23
C、不打印任何内容
D、陷入死循环
(  C  )
8、下面的代码int i=10; 之后的for循环语句,语法正确,不会编译出错的是________。
A、for(i=0,i<10,i++)
B、for{
i=0;i<10;i++}
C、for( ;i>5;i--)
D、for(i=0;i<10;i++;)
(  A  )
9、用在switch语句的关键字没有哪个?
A、continue
B、break
C、default
D、if
(  B  )
10、以下叙述中正确的是________。
A、循环发生嵌套时,最多只能两层
B、三种循环 for, while,do-while 可以互相嵌套
C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D、for 语句的圆括号中的表达式不能都省略掉

四、数组/指针数组 (共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];
(  D  )
2、以下不能正确定义二维数组的选项是________。
A、int a[2][2]={{1},{2}};
B、int a[][2]={1,2,3,4};
C、int a[2][2]={{1},2,3};
D、int a[2][]={{1,2},{3,4}};
(  C  )
3、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
A、printf("%s%s",s1[5],s2[7]);
B、printf("%c%c",s1,s2);
C、puts(s1);puts(s2);
D、puts(s1,s2);
(  C  )
4、若在某函数内部有定义:int a[3][4]; 则数组a中各元素________。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0
(  D  )
5、以下函数返回a所指数组中最小的值所在的下标值:
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]) ______,
return(p);
}
在横线处应填入的是______。
A、i=p
B、a[p]=a[i]
C、p=j
D、p=i
(  A  )
6、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
A、a[2]="WIN"
B、strcpy(a[2],"WIN")
C、a[2][3]='W'
D、a[0][1]=a[0][1]
(  B  )
7、下面程序的运行结果是
#include<stdio.h>
main()
{
char a[]="morning",t;
int i,j=0;
for(i=1;i<7;i++) {
if(a[j]<a[i]) {
j=i;
t=a[j];
a[j]=a[7];
a[7]=a[j];
}
}
printf("%s", a);
}
A、mrgninr
B、m
C、moring
D、morning
(  C  )
8、下列数组的定义中,错误的是________。
A、char ca1[]='c','m','n';
B、char ca2[6]="name";
C、char ca3[4]="your";
D、int array[]=1,2,3,4;
(  B  )
9、以下叙述中正确的是________。
A、一条语句只能定义一个数组
B、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元
C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
D、在引用数组元素时,下标表达式可以使用浮点数
(  B  )
10、若有说明: static int a[3][4];
则数组中各元素________。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0

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

(  B  )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
A、9
B、10
C、11
D、8
(  A  )
2、以下不能正确进行字符串赋初值的语句是________。
A、char str[5]="good!";
B、char str[]="good!";
C、char *str="good!";
D、char str[5]={‘g',‘o',‘o',‘d'};
(  D  )
3、以下程序运行后的输出结果是
main( )
{
char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
A、ABCD
BCD
CD
D
B、A
B
C
D
C、B
C
D
D、BCD
CD
D
(  C  )
4、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
A、char st[4][5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s="ABCDE";
D、char *s; scanf("%s",*s);
(  D  )
5、有以下程序
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
(  B  )
6、在c语言中,不允许有常量的数据类型是________。
A、整型
B、结构型
C、字符型
D、字符串
(  A  )
7、下列对字符串的定义中,错误的是________。
A、char str[7] = "FORTRAN";
B、char str[] = "FORTRAN";
C、char *str = "FORTRAN";
D、char str[] = {'F','O','R','T','R','A','N',0};
(  D  )
8、以下选项中,合法的 c 语言常量是________。
A、2XY
B、HELLO'
C、"\0.\0
D、1.0
(  B  )
9、下面选项中合法的字符常量是________。
A、"X"
B、'X'
C、'abc'
D、'\'
(  C  )
10、判断两个字符串是否相等,正确的表达方式是________。
A、while(s1==s2)
B、while(s1=s2)
C、while(strcmp(s1,s2)==0)
D、while(strcmp(s1,s2)=0)

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

(  A  )
1、有以下函数
int aaa (char *s)
{
char *t = s;
while (*t++);
t-=1;
return (t - s);
}
以下关于aaa函数的功能叙述正确的是________。
A、求字符串s的长度
B、比较两个串的大小
C、将串s复制到串t
D、求字符串S所占字节数
(  A  )
2、已有函数 max ( a , b ),为了让函数指针变量 p 指向函数 max ,正确的赋值方法是______。
A、p=max ;
B、*p=max ;
C、p=max ( a , b );
D、*p=max ( a , b );
(  A  )
3、以下关于return语句的叙述中不正确的是________。
A、一个自定义函数中必须有一条return语句
B、一个自定义函数中可以根据不同情况设置多条return语句
C、如果一个函数有多个return语句,那么不论运行到哪一个return语句,该函数将结束
D、没有return语句的自定义函数在执行完最后一条语句时返回到调用处
(  D  )
4、下列说法不正确的是________。
A、一个C语言源程序可以由一个函数组成也可以由多个函数组成
B、main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略
C、C语言程序是以函数为基本单位的
D、在C语言程序中,注释行只能位于一条语句的后面
(  B  )
5、结构化程序设计所规定的三种基本控制结构是________。
A、输入、输出、处理
B、顺序结构、选择结构、循环结构
C、for、while、switch
D、主程序、子程序、函数
(  C  )
6、计算斐波那契数列第n项的函数定义如下: int fib(int n)
{
if(n==0) return1;
else if(n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是________。
A、1
B、2
C、3
D、4
(  D  )
7、设int f (int); 和int g(int); 是函数f和g的原形,以下将f作为语句调用的是______ 。
A、g(f(3))
B、f(g(3));
C、g(f(3)+2);
D、p=f(g (3)+1);
(  B  )
8、以下关于程序中函数的定义、调用和声明的叙述中,正确的是______。
A、函数的定义必须放在该函数的调用之前
B、函数的声明必须放在该函数的调用之前
C、函数的定义必须放在该函数的声明之前
D、函数的声明必须放在该函数的定义之前
(  C  )
9、下面程序段的运行结果是________。
char a[]="abcdefgh"; char *p=a; p+=3; printf("%d\n",strlen(strcpy(p,"abcd")));
A、8
B、12
C、4
D、7
(  D  )
10、c语言程序的三种基本结构是________。
A、循环结构转移结构顺序结构
B、递归结构循环结构转移结构
C、嵌套结构递归结构顺序结构
D、顺序结构选择结构循环结构

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

(  A  )
1、定义如下变量和数组: int i; int x[3][3]={ 1,2,3,4,5,6,7,8,9 } 则下面语句的输出结果是________。 for(i=0;i<3;i++) printf("%d",x[i][2-1]);
A、2 5 8
B、1 4 7
C、3 5 7
D、3 6 9
(  B  )
2、以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大
B、静态 (static) 类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值
(  A  )
3、下列对字符数组进行初始化的语句正确的是________。
A、char a []="Hello";
B、char a[][]={'H','e','1','1','o');
C、char a[5]="Hello";
D、char a[2][5]={"Hello", "World"};p
(  D  )
4、以下关于排序算法的叙述中,正确的是________。
A、冒泡排序法中,元素的交换次数与元素的比较次数一定相同
B、冒泡排序法中,元素的交换次数不少于元素的比较次数
C、简单选择排序中,关键字相同的记录在排序前后的相对位置一定不变
D、简单选择排序中,关键字相同的记录在排序前后的相对位置可能交换
(  A  )
5、若x是整型变量,pb是类型为整型的指针变量,则正确的赋值表达式是______。
A、pb=&x;
B、pb=x;
C、*pb=&x;
D、*pb=*x
(  B  )
6、设变量定义为 int a[2]={1,3}
, *p=&a[0]+1;
,则*p的值是________。
A、2
B、3
C、4
D、&a[0]+1
(  A  )
7、若有double *p,x[10]; int i=5; 使指针变量p指向元素x[5]的语句为________。
A、p=&x[i];
B、p=x;
C、p=x[i];
D、p=&(x+i)
(  C  )
8、下面叙述中错误的是________。
A、函数的形式参数,在函数未被调用时就不被分配存储空间
B、若函数的定义出现在主调函数之前,则可以不必再加说明
C、若一个函数没有return语句,则什么值也不会返回
D、一般来说,函数的形参和实参的类型要一致
(  B  )
9、下列语句定义pf为指向float型变量f的指针,_____是正确的.
A、float f, *pf = f;
B、float f, *pf = &f;
C、float *pf = &f, f;
D、float f, pf
(  A  )
10、定义如下变量和数组: int k,a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
A、3 5 7
B、3 6 9
C、1 5 9
D、1 4 7

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

(  B  )
1、已知有如下结构体:
struct sk
{
int a;
float b;
}
data,*p;
若有p = &data,则对data的成员a引用正确的是________。
A、(*p).data.a
B、(*p).a;
C、p->data.a
D、P.data.a
(  B  )
2、下面结构体的定义语句中,错误的是________。
A、struct ord {
int x;int y;int z;};struct ord a;
B、struct ord {
int x;int y;int z;} struct ord a;
C、struct ord {
int x;int y;int z;} n;
D、struct {
int x;int y;int z;} a;
(  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);
}
程序的运行结果是________。
A、1,2
B、2,3
C、3,4
D、4,1
(  B  )
4、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node *next;
}
a,b,*p=&a,*q=&b;
A、3 4 7 5
B、3 5 7 4
C、1 2 3 4
D、1 2 3 5
(  B  )
5、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a
(  B  )
6、以下选项中,能定义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  )
7、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  C  )
8、若有定义:
struct keyword
{
char key[20];
int id;
}
kw[] = {"void", 1, "char", 2, "int", 3, "float", 4, "double", 5 };
则printf("%c,%d\n", kw[3].key[0], kw[3].id);
语句的输出结果为________。
A、i 3
B、n 3
C、f 4
D、l 4
(  C  )
9、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
A、枚举变量
B、3个标识符
C、枚举数据类型
D、整数9和-1
(  D  )
10、在说明一个结构体变量时系统分配给它的存储空间是________ 。
A、该结构体中第一个成员所需存储空间
B、该结构体中最后一个成员所需存储空间
C、该结构体中占用最大存储空间的成员所需存储空间
D、该结构体中所有成员所需存储空间的总和

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

(  A  )
1、有以下程序:
#define f(x)X*x*x
main()
{
int a=3,S,t;
s=f(a+1);
t=f((a+1));
printf("%d,%d\n",S,t);
}
程序运行后的输出结果是________。
A、10,64
B、10,10
C、64,10
D、64,64
(  A  )
2、执行语句printf("%u\n",+12345)的输出结果是________。
A、12345
B、0
C、-1
D、非定值
(  B  )
3、有以下程序 fun(char p[][10])
{
int n=0,i;
for(i=0;i<7;i++) if(p[i][0]==′t′) n++;
return n;
}
main()
{
char str[][10]={"mon","tue","wed","thu","fri","sat","sun"} ;
printf("%d\n",fun(str));
}
程序执行后的输出结果是________。
A、1
B、2
C、3
D、0
(  D  )
4、有以下程序
main()
{
int x=3, y=2, z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是________。
A、3
B、2
C、1
D、0
(  C  )
5、有以下程序
#include <stdio.h>
main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3}, c[5]={0}, i;
for(i=0;i<12;i++) c[s[i]]++;
for(i=1;i<5;i++) printf("%d",c[i]);
printf("\n");
}
程序的运行结果是________。
A、1 2 3 4
B、2 3 4 4
C、4 3 3 2
D、1 1 2 3
(  A  )
6、执行下列程序段后的输出结果是 ___________. int x=1,y=1,z=1; x+=y+=z; printf("%d\n",x<y?y:x);
A、3
B、2
C、1
D、4
(  C  )
7、下列程序的输出结果是________。
main( )
{
char a[10]={9,8,7,6,5,4,3,2,1,0},* p=a + 5;
printf("%d",*--p);
}
A、非法
B、a[4]的地址
C、5
D、3
(  C  )
8、有以下程序
main()
{
union
{
unsigned int n;
unsigned char c;
}
ul;
ul.c='a';
printf("%c\n",ul.n);
}
执行后输出结果是______。
A、产生语法错
B、随机值
C、A
D、65
(  D  )
9、下面程序的输出是______。
main( )
{
int t=1;
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]);
}
A、1,3,5,1,5,9,
B、1,3,5,1,3,5,
C、1,3,5,0,4,8,
D、1,3,5,-1,3,7,
(  C  )
10、下列程序段的运行结果是________ int x=10,y=20,z=30;
if(x>y) z=x;
x=y;
y=z;
printf("%d,%d,%d\n",x,y,z);
A、10,20,30
B、20,30,10
C、20,30,30
D、20,30,20