北京印刷学院历年C语言专升本试题

本试卷为北京印刷学院历年C语言专升本试题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

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

C语言专升本试题

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

(  D  )
1、设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是________。
A、x&&Y
B、x<=Y
C、x‖y+z&&y-z
D、!((x<Y)&&!Z‖1)
(  B  )
2、表达式k=1*3 ? 2 : 0的值是________。
A、3
B、2
C、1
D、0
(  C  )
3、已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是________。
A、scanf(“%2d%2d%2d”,&i,&j,&k);
B、scanf(“%d_%d_%d”,&i,&j,&k);
C、scanf(“%d,%d,%d”,&i,&j,&k);
D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
(  C  )
4、c语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:
A、必须为字母
B、必须为下划线
C、必须为字母或下划线
D、可以是字母,数字或下划线中的任意一种
(  D  )
5、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
A、p=1;
B、*q=2;
C、q=p;
D、*p=5;
(  D  )
6、已知有变量定义: int a; char c; 用 scanf(" %d%c " ,&a,&c); 语句给 a 和 c 输入数据,使 30 存入 a ,字符‘ b ’存入 c ,则正确的输入是: 。
A、30 ’ b ’ < 回车 >
B、30 b< 回车 >
C、30< 回车 >b< 回车 >
D、30b< 回车
(  A  )
7、下列程序段执行后 k 值为 。
int k=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
k=k+1 ;
A、15
B、3
C、5
D、8
(  C  )
8、对于条件表达式(k)(i++):(i--)来说,其中的表达式k等价于( )
A、k==0
B、k==1
C、k!=0
D、k!=1
(  C  )
9、当代计算机之所以能自动地连续进行数据处理,主要是由于
A、采用了开关电路
B、采用了半导体器件
C、具有存储程序的功能
D、采用了二进制数
(  A  )
10、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。
A、++X,Y=X--
B、X+1=Y
C、X=X+10=X+Y
D、double(X)/10
(  A  )
11、十六进制数100转换为十进制数为
A、256
B、512
C、1024
D、64
(  D  )
12、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是________。
A、++i;
B、n1=(n2/(n3=2));
C、k=i=j;
D、a=b+c=2;
(  C  )
13、结构化程序设计主要强调程序的()
A、效率
B、速度
C、可读性
D、大小
(  A  )
14、以下是正确 c 语言标识符的是________。
A、_3
B、#3
C、&3
D、-3
(  B  )
15、设a为整型变量,下列选项中不能正确表达数学关系:10<a<15________。
A、10<a<15
B、a==11 || a==12
C、a>10 && a<15
D、!(a<=10)&&!(a>=15)
(  B  )
16、以下合法的赋值语句是______。
A、X=Y=100
B、D--;
C、X+Y;
D、C=INT(A+B)
(  B  )
17、以下符合c语言语法的赋值表达式是________。
A、d=9+e+f=d+9
B、d=9+e,f=d+9
C、d=9+e,e++,d+9
D、d=9+e++=d+7
(  D  )
18、有int x=3,y=4,z=5;
则下面表达式中值为0 的是________。
A、'x'&&'y'
B、x<=y
C、x||y+z&&y-z
D、!((x<y)&&!z||1)
(  C  )
19、能正确表示:当x 的取值范围在[1,10] 或[100, 110]内为真,否则为假的表达式是________。
A、( x>= 1)&& ( x<= 10)&& ( x>= 100)&& ( x<= 110)
B、( x>= 1) ||( x<= 10) ||( x>= 100) ||( x<= 110)
C、( x>= 1)&& ( x<= 10) ||( x>= 100)&& ( x<= 110)
D、( x>= 1) ||( x<= 10)&& ( x>= 100)&& ( x<= 110)
(  A  )
20、C语言中,char 类型数据占()。
A、1 个字节
B、2 个字节
C、4 个字节
D、8 个字节

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

(  C  )
1、在嵌套使用if语句时,c语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对
B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对
D、和之前的第一个if配对
(  B  )
2、与"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;
(  C  )
3、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d)y=0; else y=1; 该语句所表示的含义是________。
A、y=0,a
y=1,a≥b
B、y=0,a
y=1,a≥b且c≠d
C、y=0,a
y=1,a<B且C≠D
D、y=0,a
y=1,c≠d
(  C  )
4、关于结构化程序设计原则和方法的描述错误的是________。
A、选用的结构只准许有一个入口和一个出口
B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C、不允许使用GOTO语句
D、语言中若没有控制结构,应该采用前后一致的方法来模拟
(  C  )
5、当从键盘上输入字符"12134211"下面程序的 输出结果是________。
main( )
{
char s;
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{
scanf("%c",&s);
switch(s)
{
default: v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++;
}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A、v1=4,v2=2,v3=1,v4=1
B、v1=4,v2=9,v3=3,v4=1
C、v1=5,v2=8,v3=6,v4=1
D、v1=8,v2=8,v3=8,v4=8
(  C  )
6、若a的值为3时,下列程序段被执行后,c的值是________。
int c = 1;
if (a>0) if (a>3) c = 2;
else c = 3;
else c = 4;
A、1
B、2
C、3
D、4
(  C  )
7、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
A、a!=4||b==1
B、'a'%3
C、'a'=1/2
D、'a'+32
(  C  )
8、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y && y!=0);
C、if(x>0) x--
D、if(y<0) {;}
(  A  )
9、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式
(  D  )
10、在c 的if 语句中,可用作条件的表达式是________。
A、关系表达式
B、逻辑表达式
C、算术表达式
D、任意表达式

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

(  B  )
1、语句 for(k=0;k<5;++k)
{
if(k== 3) continue;
printf("%d",k);
}
的输出结果为______
A、012
B、0124
C、01234
D、没有输出结果
(  B  )
2、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
A、12
B、10
C、11
D、9
(  C  )
3、下面程序段的输出结果是 __________.
x=3;
do
{
y=x--;
if (!y)
{
printf("*");
continue;
}
printf("#");
}
while(x=2);
A、##
B、##*
C、死循环
D、输出错误信息
(  D  )
4、流程控制语句的基本控制结构有三种,其中不包括________。
A、顺序结构
B、选择结构
C、循环结构
D、计算结构
(  C  )
5、在下列选项中,没有构成死循环的程序段是________。
A、int i=100;
for(;;) {
i=i%10+1;
if(i>10)
break;
}
B、while(1);
C、int k=0;
do
{
++k;
}
while(k<=10);
D、int s=12;
while(s);
--s;
(  C  )
6、以下不正确的是 ______。
A、语句for(i=0:;i++)表示无限循环
B、for(; ;)表示无限循环
C、for()也表示无限循环
D、while(1)表示无限循环
(  B  )
7、有如下程序
main()
{
int x=3;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是______。
A、321
B、3
C、不输出任何内容
D、陷入死循环
(  B  )
8、以下程序运行后的输出结果是 _______ 。
main( )
{
int i=0,s=1;
for (;;)
{
if (i==5) break;
i++;
s+=i;
}
;
printf("%d\n",s);
}
A、死循环
B、16
C、15
D、11
(  B  )
9、以下叙述中正确的是________。
A、循环发生嵌套时,最多只能两层
B、三种循环 for, while,do-while 可以互相嵌套
C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D、for 语句的圆括号中的表达式不能都省略掉
(  C  )
10、执行下列程序后,i的值是________。
int i,x;
for(i=1,x=1;i<20; i++) {
if (x>=10) break;
if(x%2==1) {
x+=5;
continue;
}
x-=3;
}
A、4
B、5
C、6
D、7

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

(  D  )
1、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。
#define N 5
void fun(int x[N])
{
int m;
for(m=N-t;m>=O;m-)scanf("%d",________);
}
A、%&X[++m]
B、&x[m+1]
C、x+(m++)
D、x+m
(  B  )
2、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
A、printf("%d",a[10];)
B、printf("%d",a[9]);
C、printf("%d",a[a.length]);
D、printf("%d",a[8]);
(  B  )
3、若有定义:int w[3][5]; 则以下不能正确表示该数组元素的表达式是________。
A、*(*w+3)
B、*(w+1) [4]
C、*(*(w+1) )
D、*(&w[0][0]+1)
(  C  )
4、以下正确的程序段是________。
A、char str1[ ]="12345",str2[ ]="abcdef";
B、char str[10],*st="abcde";strcat(str,st);
C、char str[10]=" "。*st="abcde";strcat(str,st);
D、char*st1="12345",*st2="abcde";strcat(st1,st2);
(  A  )
5、以下选项中,不能正确赋值的是 ______。
A、char s1[10];s1="chest";
B、char s2[]='C','t','e','s','t';
C、char s3 [20]="Chest";
D、char * s4="Cest\n"
(  D  )
6、下列二维数组的说明中,不正确的是________。
A、float a[][4]=0,1,8,5,9;
B、int a[3][4]
C、#define N 5
float a[N][3]
D、int a[2][9.5];
(  C  )
7、与实际参数为实型数组名相对应的形式参数不可以定义为________。
A、float a[];
B、float *a;
C、float a;
D、float (*a)[3];
(  D  )
8、若有定义:int b[5];
则以下对b 数组元素的正确引用是________。
A、*b[5]
B、b+2
C、*(*(b+2))
D、*(b+2)
(  D  )
9、具有相同类型的指针变量p与数组a,不能进行的操作是________。
A、p=a;
B、*p=a[0];
C、p=&a[0];
D、p=&a;
(  B  )
10、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。
#include <stdio.h>
main()
{
int a, b, t;
scanf("%d%d", &a, &b);
while (_________)
{
if (a > b)
{
t = a;
a = b;
b = t;
}
printf("%d,%d\n", a, b);
scanf("%d%d", &a, &b);
}
}
A、!a=b
B、a!=b
C、a==b
D、a=b

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

(  D  )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
A、if(s1>s2)S;
B、if(strcmp(s1,s2))S;
C、if(strcmp(s2,sl)>O)S;
D、if(stremp(s1,s2)>O)S;
(  B  )
2、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
A、5
B、4
C、6
D、1
(  D  )
3、下列字符串中,正确的c标识符是________。
A、foo-1
B、2b
C、new
D、256
(  A  )
4、以下选项中合法的c语言字符常量是________。
A、'\t'
B、"A"
C、67
D、A
(  B  )
5、有以下程序
#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  )
6、有以下程序
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
(  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};
(  C  )
8、设 char *s="\ta\017bc";
则指针变量s指向的字符串所占的字节数 是________。
A、9
B、5
C、6
D、7
(  A  )
9、下面不能正确进行字符串赋值操作的语句是________。
A、char s[5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s;s="ABCDEF";
D、char *s; scanf("%s",s);
(  B  )
10、以下语句中,不能实现回车换行的是()。
A、printf("\n");
B、putchar("\n");
C、fprintf(stdout,"\n");
D、fwrite("\n",1,1,stdout);

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

(  C  )
1、#define能作简单的替代,用宏来替代计算多项式5*X*x 4-5*x+5的值的函数f,正确的宏定义语句为( )。
A、#define f(x) 5*x*x+5*X+5
B、#define f5*x*x+5*x+5
C、#define f(a) (5*a”a+5*a+5)
D、#define(5*x*x+5+x+5) f(x)
(  D  )
2、对下面程序段,描述正确的是________。 for(t=1;t<=100;t++)
{
scanf("%d",&x);
if (x<0) continue;
printf("%d\n",t);
}
A、当x<0时,整个循环结束
B、当x>=0时,什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数
(  B  )
3、一个 c 语言程序总是从 开始执行。
A、主过程
B、主函数
C、子程序
D、主程序
(  C  )
4、若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是________。
A、(*p)max(a,b)
B、*pmax(a,b)
C、p=max(a,b)
D、*p=max(a,
(  A  )
5、若有下面的函数调用: fun(a+b,3,max(n-1,b)) 则fun的实参个数是________。
A、3
B、4
C、5
D、6
(  A  )
6、以下叙述中正确的是______。
A、函数既可以直接调用自己,也可以间接调用自己
B、任何情况下都不能用函数名作为实参
C、函数的递归调用不需要额外开销,所以效率很高
D、简单递归不需要明确的结束递归的条件
(  B  )
7、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;
当flag为0时,进行由大到小排序。
void f (int b[],int n,int flag)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
main()
{
int a[10]={5,4,3,2,1,6,7,8,9,10}, i;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A、1,2,3,4,5,6,7,8,9,10,
B、3,4,5,6,7,2,1,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,
(  A  )
8、以下叙述中错误的是________。
A、将函数内的局部变量说明为 static 存储类是为了限制其他编译单位的引用
B、一个变量作用域的开始位置完全取决于变量定义语句的位置
C、全局变量可以在函数以外的任何部位进行定义
D、局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
(  B  )
9、为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
A、auto
B、register
C、static
D、extern
(  C  )
10、下面叙述中错误的是________。
A、函数的形式参数,在函数未被调用时就不被分配存储空间
B、若函数的定义出现在主调函数之前,则可以不必再加说明
C、若一个函数没有return语句,则什么值也不会返回
D、一般来说,函数的形参和实参的类型要一致

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

(  C  )
1、以下叙述中不正确的是________。
A、空字符串(即两个双引号连写)只占一个存储单元
B、字符型常量可以放在字符型变量中
C、字符型常量可以放在字符串变量中
D、字符型常量可以与整数混合运算,而字符串常量不可以
(  B  )
2、有如下函数调用语句 func(rec1,rec2+rec3,rec4, rec5); 该函数调用语句中 , 含有的实参个数是 __________.
A、3
B、4
C、5
D、有语法错误
(  B  )
3、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数funa,则 ________。
A、称为函数的直接递归调用
B、称为函数的间接递归调用
C、称为函数的循环调用
D、C语言中不允许这样的递归调用
(  B  )
4、有以下程序
#include<stdio.h>
int fun(int a,int b) {
if(b=0)return a;
else return(fun(--a,--b));
}
main() {
printf("%d\n",fun(4,2));
}
程序的运行结果是________。
A、1
B、2
C、3
D、4
(  A  )
5、下列程序的输出结果是________。
int f1(int x,int y)
{
return x>y?x:y;
}
int f2(int x,int y)
{
return x>y?y:x;
}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
A、4,3,7
B、3,4,7
C、5,2,7
D、2,5,7
(  A  )
6、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是______。
A、4
B、5
C、9
D、10
(  D  )
7、以下语句或语句组中,能正确进行字符串赋值的是________。
A、char *sp; *sp="right!";
B、char s[10]; s="right!";
C、char s[10]; *s="right!";
D、char *sp="right!";
(  D  )
8、假定int类型变量占用4个字节,若有定义:int x[10]= {0,2,4}则数组x在内存中所占字节数是______。
A、4
B、12
C、20
D、40
(  A  )
9、有说明语句int a[4][5]; 则a[2]+3表示__。
A、a数组行下标为2、列下标为3的元素的地址
B、a数组行下标为2、列下标为3的元素的值
C、a数组第2行的首地址
D、a数组第3行的首地址
(  C  )
10、要调用数学函数时,在 #include命令行中应包含____。
A、"stdio.h"
B、"string.h"
C、"math.h"
D、"ctype.h"

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

(  D  )
1、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
A、*pw.year=1980;
B、w.year=1980;
C、pw->year=1980;
D、w.s.year=1980;
(  D  )
2、有以下程序
#include <stdio.h>
struct tt
{
int x;
struct tt*y;
}
*p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{
int i;
p=a;
for(i=1;i<=2,i++)
{
printf("%d,",p->x);
p=p->y;
}
}
程序的运行结果是________。
A、20,30,
B、30,17
C、15,30,
D、20,15
(  A  )
3、程序中有下面的说明和定义
struct abc
{
int x ;
char y ;
}
struct abc s1 , s2 ;
则会发生的情况是______。
A、编译出错
B、程序将顺利编译、连接、执行
C、能顺利通过编译、连接、但不能执行
D、能顺利通过编译、但连接出错
(  A  )
4、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  A  )
5、下列选项中不属于c语言的数据类型是________。
A、复数型
B、逻辑型
C、双精度型
D、集合型
(  B  )
6、递归算法的执行过程一般来说可先后分成______和______两个阶段。
A、试探
B、递推
C、枚举
D、分析
(  B  )
7、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
struct node char data;
struct node*next;
a,b,*p=&a,*q=&b;
A、next=q;
B、next=&b;
C、p->next=&b;
D、(*p).next=q;
(  D  )
8、设有以下说明语句:
typedef struct stu
{
int a;
float b;
}
stutype;
则下面叙述中错误的是________。
A、struct是结构类型的关键字
B、struct stu是用户定义的结构类型
C、a和b都是结构成员名
D、stutype是用户定义的结构体变量名
(  D  )
9、下面定义结构变量的语句中错误的是________。
A、struct student{
int num; char name[20];
} s;
B、struct {
int num; char name[20];
} s;
C、struct student{
int num; char name[20];
};
struct student s;
D、struct student{
int num; char name[20];
};
student s;
(  C  )
10、下面说法正确的是________。
A、文件指针变量的值是文件当前正在处理的字节地址
B、文件指针变量的值是文件中包含的字符个数
C、文件指针的类型是一种指针类型
D、文件指针的类型是结构体类型

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

(  C  )
1、有以下程序:
main()
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是________。
A、10,01
B、02,12
C、102,10
D、02,10
(  B  )
2、有以下程序
main( )
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是________。
A、3,2,0
B、3,2,-1
C、4,3,-1
D、5,-2,-5
(  C  )
3、下列程序的输出结果是 __________.
#include <stdio.h>
void main()
{
char b[]="abcdefg";
char p=0;
while(p<7) putchar(b[p++]);
putchar('\n');
}
A、GFEDCBA
B、BCDEFG
C、ABCDEFG
D、GFEDCB
(  B  )
4、下列程序执行后的输出结果是
main() {
int a[3][3],*p,i;
p=&a[0][0];
for(i=1;i<9;i++) p[i]=i+1;
printf("%d\n",a[1][2]);
}
A、3
B、6
C、9
D、随机数
(  C  )
5、以下c程序正确的运行结果是________。
#include<stdio.h>
void main()
{
long y=-43456;
printf("y=%d\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
A、y=-43456
y= -43456
y= -0043456
y=+ 43456
B、y= -43456
Y=-43456
y=-0043456
Y= +43456
C、y=-43456
y=-43456
y=-0043456
y= -43456
D、Y=-0043456
y=00043456
y= -43456
y=+43456
(  A  )
6、有以下程序
#include <stdlib.h>
main()
{
char *p,*q;
p=(char *)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q);
printf("%s%s\n",p,q);
}
若从键盘输入:abc def↙,则输出结果是______。
A、def def
B、abc def
C、abc d
D、d d
(  C  )
7、有以下的代码 int a[4]= {1,2,3,4 }; int *p=a; p++; ++p; printf("%d",*p); 的输出结果是________。
A、1
B、2
C、3
D、4
(  A  )
8、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int i=10,j=10;
printf("%d,%d\n",++i,j--);
}
A、11,10
B、9,10
C、11,9
D、10,9
(  D  )
9、下面程序的运行结果是________。
#include <stdio.h>
main()
{
int i, b, k = 0;
for (i = 1; i <= 5; i++)
{
b = i % 2;
while (b-- >= 0) k++;
}
printf("%d,%d", k, b);
}
A、3,-1
B、8,-1
C、3,0
D、8,-2
(  D  )
10、以下程序段的输出结果是()。
char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
A、A
B、B
C、D
D、DEF