天津商业大学C语言专升本

本试卷为天津商业大学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
(  A  )
2、语句while(!e); 中的表达式!e等价于( )。
A、E==0
B、E!=1
C、E!=0
D、E==1
(  D  )
3、表达式3.6-5/2+1.2+5%2的值是________。
A、4.3
B、4.8
C、3.3
D、3.8
(  D  )
4、英文小写字母d的ascii码为100,英文大写字母d的ascii码为
A、50
B、66
C、52
D、68
(  C  )
5、若 x=0 , y=3 , z=3, 以下表达式值为 0 的是________。
A、!x
B、x<y? 1:0
C、x%2&&y==z
D、y=x||z/3
(  D  )
6、设int b=2; 表达式(b<<2)/(b>>1)的值是________。
A、2
B、4
C、6
D、8
(  A  )
7、以下程序段中与语句k=a>b ? (b>c ? 1:0):0; 功能等价的是________。
A、if((a>b)&&(b>c))
k=1;
B、if((a>b)||(b>c)) k=1;
else k=0;
else k=0;
C、if(a<=b) k=0;
D、if(a>b) k=1;
else if(b<=c) k=1;
else if(b>c) k=1;
else k=0;
(  C  )
8、设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是________。
A、0
B、2
C、1
D、3
(  C  )
9、用高级程序设计语言编写的程序称为________。
A、目标程序
B、可执行程序
C、源程序
D、伪代码程序
(  B  )
10、下列赋值语句错误的是________。
A、A
B、i==0;
C、i=i+1:
D、i+=1:
(  A  )
11、若有说明语句:char c=‘\72’; 则变量c________。
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法,C的值不确定
(  A  )
12、某c语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在 (1) 时会报错,这是一种 (2) 错误。(1)处填________。
A、编译
B、预处理
C、编辑
D、运行
(  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";
(  C  )
14、下列标识符,不合法的是________。
A、abc
B、_d
C、123
D、e1
(  A  )
15、以下选项中不能作为c语言合法常量的是______。
A、'cd'
B、0.1e+6
C、"\a"
D、'\011'
(  D  )
16、c语言表达式( )的值不等于1。
A、123/100
B、901%10
C、76%3
D、625%5
(  C  )
17、该语句打印结果为(每个d后都有空格)printf("%d ", printf("%d ", printf("%d ", 43)));
A、4321
B、43 43 43
C、43 3 2
D、4 3 2 1
(  B  )
18、执行下面的程序段int x=5;
char z='a';
int b;
b=((x&15)&&(z<'a') );
后,b的值为________。
A、0
B、1
C、2
D、3
(  C  )
19、以下数据中,不正确的数值或字符常量是()。
A、0
B、5L
C、o13
D、9861
(  B  )
20、下列标识符中,不合法的 C语言用户自定义标识符是()。
A、printf
B、enum
C、_(下划线)
D、sin

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

(  A  )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
A、1
B、0
C、2
D、不知道a的值,不能确定
(  A  )
2、有如下程序:
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\n", a, b);
}
该程序的输出结果是________。
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2 b=2
(  A  )
3、以下程序的输出结果是
main()
{
int a=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=2;
case 1: case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A、31
B、13
C、10
D、20
(  A  )
4、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
A、可以是任意合法的数值
B、必须是整数值
C、必须是正数
D、必须是逻辑值
(  D  )
5、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
A、switch(a+b);……
B、switch(a+b*3.0)……
C、switch a……
D、switch(a%b)……
(  A  )
6、switch语句不能用于下列哪种数据类型 ( )
A、double
B、byte
C、short
D、char
(  C  )
7、有以下程序
main()
{
int i=1,j=1,k=2;
if((j++‖k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是________。
A、1,1,2
B、2,2,1
C、2,2,2
D、2,2,3
(  C  )
8、下述语句中,_____中的if语句语法是错误的。 ( )
A、if(x>y);
B、if(x==y)x+=y;
C、if(x!=y)seanf("%d",&x)else scanf("%d",&y);
D、if(x<y)x++;y++;
(  A  )
9、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
A、9,66,9
B、6,99,6
C、6,96,9
D、9,69,6
(  B  )
10、将三个数排序需要比较________次。
A、2
B、3
C、4
D、不确定

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

(  B  )
1、若 i 为整型变量 , 则以下循环语句的循环次数是 ____. for(i=2;i==0;) printf("%d",i--);
A、无限次
B、0 次
C、1 次
D、2 次
(  A  )
2、下列关于宏操作的叙述错误的是________。
A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环控制条件更严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
(  A  )
3、下列关于continue和break的描述正确的是________。
A、continue只能用于循环体中
B、break只能用于循环体中
C、continue只是一个语句标记
D、break只能用于switch语句块中
(  D  )
4、若a、b为int型变量,则执行以下语句后a的值为( )
a=1;
b=10;
do
{
b-=a;
a++;
}
while(b-->0);
A、1
B、3
C、4
D、5
(  D  )
5、有以下程序
main()
{
int i=0,s=0;
for(;;)
{
if(i==3‖i==5) continue;
if(i==6) break;
i++;
s+=i;
}
;
printf("%d\n",s);
}
程序运行后的输出结果是________。
A、10
B、13
C、24
D、程序进入死循环
(  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 k=0;
while(k=1) k--;
则以下叙述中正确的是________。
A、while 循环执行一次
B、该循环是无限循环
C、循环体语句一次也不执行
D、该循环有语法错误
(  B  )
8、下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。
#include <stdio.h>
#include <math.h>
main()
{
int a, b, c, d;
scanf("%d", &a);
for (b = 3, b <= a / 2; b += 2)
{
for (c = 2; c <= sqrt(c); c++) if (b % c == 0) break;
if (c > sqrt(b)) d = ________;
else continue;
for (c = 2; c <= sqrt(d); c++) if (d % c == 0) break;
if (c > sqrt(d)) printf("%d=%d+%d\n", a, b, d);
}
}
A、a+b
B、a-b
C、a*b
D、a/b
(  C  )
9、下面程序的运行结果是________。
main( )
{
int cl=2,c2=0;
while(!c2--)printf(''%d%d'',cl--,c2);
}
A、陷入死循环
B、不输出任何内容
C、输出2 -1
D、输出20
(  A  )
10、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
A、0
B、1
C、TRUE
D、非 0

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

(  D  )
1、若已定义: int a[4][3]=(1,2,3,4,5,6,7,8,9,10,1i,12),(*prt) [3]=a,*p=a[0];则能够正确表示数组元素a[1][2]的表达式是________。
A、*((+prt+1)[2])
B、*(*(p+5))
C、(+prt+1)+2
D、*(*(a+1)+2)
(  D  )
2、有数组:char a[ ]="this is an egg"; 。请问该数组到底占了几个字节?
A、11
B、12
C、14
D、15
(  A  )
3、下面关于数组的初始化正确的是________。
A、char str[ ] = {'a','b','c'}
B、char str[2]={'a','b','c'}
C、char str[2][3]={{'a','b',},{'c','d'},{'e','f'}}
D、char str( )={'a','b','c'}
(  C  )
4、关于数组的叙述中,下列说法不正确的是________。
A、数组是最简单的复合数据类型,是有限元素的有序集合
B、数组的元素可以是值(基本数据类型)、对象或其他数组
C、定义数组时,必须分配内存
D、一个数组中的元素都必须是相同的类型
(  B  )
5、二维数组a的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若a按行先存储,元素a[8,5]的起始地址与当a按列先存储时的元素( )的起始地址相同。设每个字符占一个字节。
A、A[8,5]
B、A[3,10]
C、A [5,8]
D、A[0,9]
(  D  )
6、下面关于数组的描述错误的是________。
A、在C语言中数组的名字就是指向该数组第一个元素的指针
B、长度为n的数组,下标的范围是0~n-1
C、数组的大小必须在编译时确定
D、数组只能通过值参数和引用参数两种方式传递给函数
(  D  )
7、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。
A、8,a,Z
B、a,8,Z
C、a,Z,8
D、8,Z,a
(  A  )
8、以下能正确定义二维数组的是______。
A、int a[][3]={1,2,3,4,5,6};
B、int a[][3]={2*3};
C、int a[][3]={};
D、int a[2][3]={{1},{2},{3,4}};
(  A  )
9、已定义两个字符数组a,b,则以下正确的输入格式 是________。
A、scanf("%s%s", a, b);
B、get(a, b);
C、scanf("%s%s", &a, &b);
D、gets("a"),gets("b");
(  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、“╲╲╲”
B、‘abc’
C、Olympic
D、**
(  C  )
2、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
A、gets(s);
B、while((s[i++]=getchar())!=‘\n’);s[i]=‘\0’;
C、scanf(“%s”,s);
D、do{ scanf(“%c”,&s[i]); } while(s[i++]!=‘\n’); s[i]=‘\0;
(  D  )
3、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
A、说明不合法
B、19
C、18
D、15
(  D  )
4、表达式x+1>x是________。
A、算术表达式
B、非法表达式
C、字符串表达式
D、关系表达式
(  A  )
5、下列哪个是c语言的有效标识符
A、_Nol
B、No.1
C、12345
D、int
(  B  )
6、设有以下程序段: int a[5]=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是________。
A、p+q
B、p-q
C、p*q
D、p%q
(  A  )
7、下列合法的字符型常量是________。
A、'\x13'
B、'\081'
C、'65'
D、"\n\
(  B  )
8、字符串"xyz"在内存占用的字节数是______。
A、3
B、4
C、6
D、8
(  A  )
9、下面不正确的字符串常量是________。
A、'abc'
B、"12'12"
C、"0"
D、" "
(  A  )
10、char a[]="This is a program.";输出前 5 个字符的语句是()。
A、printf("%.5s",a);
B、puts(a);
C、printf("%s",a);
D、a[5*2]=0;puts(a);

六、函数/函数指针 (共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)
(  B  )
2、下列函数定义中,会出现编译错误的是________。
A、max(int x,int y,int *z)
{ *z=x>y ? x:y; }
B、int max(int x,y)
{
int z;
z=x>y ? x:y;
return z;
}
C、max(int x,int y)
{
int z;
z=x>y?x:y; return(z);
}
D、int max(int x,int y)
{
return(x>y?x:y); }
(  D  )
3、设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是________。
A、判断m是否能被5或者7整除
B、判断m是否能被5和7整除
C、判断m被5或者7整除是否余1
D、判断m被5和7整除是否都余1
(  A  )
4、c 语言的基本构成单位是: 。
A、函数
B、函数和过程
C、超文本过程
D、子程序
(  C  )
5、若有以下调用语句,则不正确的fun函数的首部是________。
main() {
…
int a[50],n;
…
fun(n, &a[9]);
…
}
A、void fun(int m,int x[])
B、void fun(int s,int h[4])
C、void fun(int p, int *s)
D、void fun(int n,int x)
(  C  )
6、函数的值通过return语句返回,下面关于return语句的形式描述错误的是________。
A、return表达式;
B、return(表达式);
C、一个return语句可以返回多个函数值
D、一个return语句只能返回一个函数值
(  B  )
7、若有以下说明和定义 fun(int*c)
{
...
}
main()
{
int(*a)()=fun,(*b)(),w[10],c;
}
在必要的赋值之后,对fun()函数的正确调用语句是______。
A、a=a(w)
B、(*a) (&c)
C、b=*b(w);
D、fun(b) ;
(  D  )
8、有以下程序:
voidf(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)
{
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,
(  C  )
9、sizeof(float)是________。
A、一种函数调用
B、一个不合法的表示形式
C、一个整型表达式
D、一个浮点表达式
(  D  )
10、一个c语言程序是由____构成。
A、语句
B、行号
C、数据
D、函数

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

(  C  )
1、对下述程序的判断中,正确的是________。
main()
{
char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{
printf("input the string:");
gets(s);
while(*p) putchar(*p++);
}
}
A、此程序循环接收字符串并输出,直到接收到字符串“the end”为止
B、此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止
C、此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作
D、此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串
(  B  )
2、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为________.
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回给实参
D、由用户指定传递方式
(  B  )
3、下列数据中为字符串常量的是________。
A、'A'
B、"9"
C、How do you do
D、'$abd'
(  C  )
4、若调用一个函数,且此函数中没有return语句,则正确的说法是该函数________。
A、没有返回值
B、返回若干个系统默认值
C、有返回值,但返回一个不确定的值
D、能返回一个用户所希望的函数值
(  B  )
5、以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
{
int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
A、SUM=9
B、SUM=12
C、SUM=18
D、SUM=28
(  A  )
6、设有以下函数
f(int a) {
int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是______。
main() {
int a=2,i;
for(i=0;i<3;i++)printf("%d\n"f(a));
}
A、7
8
9
B、7
9
11
C、7
10
13
D、7
7
7
(  B  )
7、有以下程序段:char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 a bc,则以下对输入形式的描述正确的是________。
A、字母 A B C 之间可以用空格分隔
B、字母 A B C 之间不能有分隔符
C、字母 A B C 之间可以用回车符分隔
D、字母 A B C 之间可以用 Tab 键分隔
(  A  )
8、经过下列的语句 int j,a[10],*p; 定义后,下列语句中合法的是________。
A、p=p+2;
B、p=a[5];
C、p=a[2]+2;
D、p=&(j+2);
(  C  )
9、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
A、p1=&ch; scanf("%c",p1);
B、p2=(char *)malloc(1);scanf("%c",p2);
C、*p3=getchar();
D、p4=&ch;*p4=getchar();
(  A  )
10、以下叙述中正确的是________。
A、构成C程序的基本单位是函数
B、可以在一个函数中定义另一个函数
C、main()函数必须放在其他函数之前
D、函数定义的格式是K&R格式

八、结构体 (共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 stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
A、struct 是结构体类型的关键字
B、struct stu 是用户定义的结构体类型
C、stutype 是用户定义的结构体类型名
D、a 和 b 都是结构体成员名
(  C  )
3、以下对 c 语言中共用体类型数据的叙述正确的是______。
A、可以对共用体变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共用体变量中不可以同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
(  C  )
4、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
A、*p.a
B、p.b
C、p->a
D、*p->b
(  C  )
5、设有以下语句:
typedef struct tt { char c; int a[4]; } cin; 则下面叙述中正确的是________。
A、可以用TT定义结构体变量
B、TT是struct类型的变量
C、可以用CIN定义结构体变量
D、CIN是struct TT类型的变量
(  D  )
6、有以下结构体说明、变量定义和赋值语句
struct std
{
char name[10];
int age;
char sex;
}
s[5],*ps;
ps=&s[0];
则以下scanf函数调用语句中错误引用结构体变量成员的是________。
A、scanf("%S",S[0].name);
B、scanf("%d",&s[0].age);
C、scanf("%C",&(ps->sex));
D、scanf("%d",ps->age);
(  B  )
7、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
A、5
B、6
C、7
D、8
(  A  )
8、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
A、STDtt[2]={{1,'A',62},{2,'B',75}};
B、STDtt[2]={1,"A",62,2,"B",75};
C、struet tt[2]={{1,'A'},{2,'B'}};
D、struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
(  C  )
9、下面哪个不是关键字?
A、int
B、struct
C、define
D、continue
(  A  )
10、在C语言中,下面那种数据类型不属于构造类型____
A、枚举类型
B、数组类型
C、结构体类型
D、共用体类型

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

(  C  )
1、若有以下程序:
main()
{
int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d\n",m,i);
}
执行后的输出结果是________。
A、8,6
B、8,3
C、6,4
D、7,4
(  A  )
2、有以下程序
main( )
{
char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"} ;
printf("%d\n",strlen(p[4]));
}
执行后输出结果是________。
A、2
B、3
C、4
D、5
(  B  )
3、语句 int i=2.8*6; 中整型常量i定义后赋初值的结果是________。
A、12
B、16
C、17
D、18
(  C  )
4、若有如下定义并赋值: char ch='a', a; 则执行语句"printf("%d",a=ch+2.6); "后的输出结果是________。
A、c
B、d
C、99
D、100
(  D  )
5、有以下程序
main()
{
char a,b,c,*d;
a='\';
b='\xbc';
c='\0xab';
d="\0127";
printf("%c%c%c%c\n",a,b,c,*d);
}
编译时出现错误,以下叙述中正确的是________。
A、程序中只有a='\';语句不正确
B、b='\xbc';语句不正确
C、d="\0127";语句不正确
D、a='\';和 c='\0xab';语句都不正确
(  B  )
6、程序片段:short i=65536; printf("%d\n",i);
的输出结果是________。
A、65536
B、0
C、有语法错误,无输出结果
D、-1
(  B  )
7、有以下程序
void f(int *q)
{
int i=0;
for( ;i<5;i++) (*q)++;
}
main()
{
int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A、2,2,3,4,5,
B、6,2,3,4,5,
C、1,2,3,4,5,
D、2,3,4,5,6,
(  C  )
8、有以下程序
#include <stdio.h>
#include <stdlib.h>
int fun(int n)
{
int *p;
p=(int*)malloc(sizeof(int));
*p=n;
return *p;
}
main()
{
int a;
a=fun(10);
printf("%d\n",a+fun(10));
}
程序的运行结果是______。
A、0
B、10
C、20
D、出错
(  B  )
9、以下程序的运行结果是________。
main( )
{
int a=5 ,p;
if(p=a!=0)printf( "n%"d,p);
elseprintf("%d\n",p+2);
}
A、5
B、1
C、0
D、编译有错,无结果。
(  D  )
10、main()
{
int x=3,i;
for(i=0;i<3;i++) printf(""%d"",f(x));
}
int f(int a)
{
int b=0;
static c=3;
b++;
c++;
return(a+b+c);
}
执行此程序后屏幕上显示的结果是________。
A、8 10 10
B、7 9 10
C、8 9 11
D、8 9 10