本文目录一览:
- 1、求计算机二级考试c语言机试题库
- 2、C语言题库,求发一份
- 3、C语言习题 以下定义语句中正确的是() A. int a=b=0 ; B. char A=65+1; b='b';
- 4、大一C语言期末考试求题库
求计算机二级考试c语言机试题库
这是部分,其余的可以私下给你,我的QQ:916356609,我传给你
一、程序填空题
1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45
按升序排列时的中间数为:8
处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
#define N 9
int fun(int x[])
{ int i,j,k,t,mid,b[N];
for(i=0;iN;i++) b[i]=x[i];
for(i=0;i=N/2;i++)
{ k=i;
for(j=i+1;jN;j++) if(b[k]b[j]) k=j;
if(k != i )
{
/**********found**********/
t=b[i]; b[i]=___1___; b[k]=t;
}
}
/**********found**********/
mid=b[___2___];
for(i=0; iN; i++)
/**********found**********/
if(x[i] ___3___ mid) x[i]=mid;
return mid;
}
main()
{ int i, x[N]={1,5,7,23,87,5,8,21,45};
for(i=0; iN; i++) printf("%d ",x[i]);
printf("\nThe mid data is: %d\n",fun(x));
for(i=0; iN; i++) printf("%d ",x[i]);
printf("\n");
}
2、给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
#define N 7
/**********found**********/
void fun(int (*a) __1__)
{ int i,j,k,m;
if(N%2==0) m=N/2 ;
else m=N/2+1;
for(i=0; im; i++) {
/**********found**********/
for(j= __2__ ; jN-i; j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1; kN-i; k++)
/**********found**********/
a[k][i]=a[k][N-i-1]= __3__;
}
}
main()
{ int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; iN; i++)
{ for(j=0; jN; j++) printf("%3d",x[i][j]);
printf("\n");
}
}
3、给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
void fun(char *s)
{ int i, j=0, k=0; char t1[80], t2[80];
for(i=0; s[i]!='\0'; i++)
if(s[i]='0' s[i]='9')
{
/**********found**********/
t2[j]=s[i]; ___1___;
}
else t1[k++]=s[i];
t2[j]=0; t1[k]=0;
/**********found**********/
for(i=0; ik; i++) ___2___;
/**********found**********/
for(i=0; i___3___; i++) s[k+i]=t2[i];
}
main()
{ char s[80]="def35adh3kjsdf7";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}
4、给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9计算结果为
1 0 0
6 5 0
10 14 9
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
#define N 4
/**********found**********/
void fun(int (*t)___1___ )
{ int i, j;
for(i=1; iN; i++)
{ for(j=0; ji; j++)
{
/**********found**********/
___2___ =t[i][j]+t[j][i];
/**********found**********/
___3___ =0;
}
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
printf("\nThe original array:\n");
for(i=0; iN; i++)
{ for(j=0; jN; j++) printf("%2d ",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n");
for(i=0; iN; i++)
{ for(j=0; jN; j++) printf("%2d ",t[i][j]);
printf("\n");
}
}
5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。
例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
void fun(char *s, char *p)
{ int i, j, n, x, t;
n=0;
for(i=0; s[i]!='\0'; i++) n++;
for(i=1; in-2; i=i+2) {
/**********found**********/
___1___;
/**********found**********/
for(j=___2___+2 ; jn; j=j+2)
if(s[t]s[j]) t=j;
if(t!=i)
{ x=s[i]; s[i]=s[t]; s[t]=x; }
}
for(i=1,j=0; in; i=i+2, j++) p[j]=s[i];
/**********found**********/
p[j]=___3___;
}
main()
{ char s[80]="baawrskjghzlicda", p[50];
printf("\nThe original string is : %s\n",s);
fun(s,p);
printf("\nThe result is : %s\n",p);
}
6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
typedef struct
{ int num;
char name[9];
char sex;
struct { int year,month,day ;} birthday;
float score[3];
}STU;
/**********found**********/
void show(STU ___1___)
{ int i;
printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,
tt.birthday.year, tt.birthday.month, tt.birthday.day);
for(i=0; i3; i++)
/**********found**********/
printf("%5.1f", ___2___);
printf("\n");
}
main( )
{ STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 };
printf("\nA student data:\n");
/**********found**********/
show(___3___);
}
7、给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdio.h
#define N 4
fun(int t[][N], int n)
{ int i, sum;
/**********found**********/
___1___;
for(i=0; in; i++)
/**********found**********/
sum+=___2___ ;
for(i=0; in; i++)
/**********found**********/
sum+= t[i][n-i-___3___] ;
return sum;
}
main()
{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;
printf("\nThe original data:\n");
for(i=0; iN; i++)
{ for(j=0; jN; j++) printf("%4d",t[i][j]);
printf("\n");
}
printf("The result is: %d",fun(t,N));
}
8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
主函数中输出:46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdlib.h
#include stdio.h
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/**********found**********/
av=__1__;
/**********found**********/
for(i=0; iN; i++) av = av + __2__;
for(i=j=0; iN; i++)
/**********found**********/
if(x[i]av) y[__3__]= x[i];
y[j]=-1;
return av;
}
main()
{ int i; double x[N] = {46,30,32,40,6,17,45,15,48,26};
double y[N];
for(i=0; iN; i++) printf("%4.0f ",x[i]);
printf("\n");
printf("\nThe average is: %f\n",fun(x,y));
for(i=0; y[i]=0; i++) printf("%5.0f ",y[i]);
printf("\n");
}
9、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
移动后的输出为:30 6 17 15 26 46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include stdlib.h
#include stdio.h
#define N 10
double fun(double *x)
{ int i, j; double av, y[N];
av=0;
/**********found**********/
for(i=0; iN; i++) av +=__1__;
C语言题库,求发一份
单选题
1. 以下叙述中正确的是(1)。
A.若e1、e2为变量,e为表达式,则
e1=e2=e使得e1、e2都具有表达式e的值 。
B.程序中不能定义与库函数名同名的变量。
C.一个C源程序可放在多个文件中,但
一个函数不能跨放在两个不同的文件中。
D.C语言编译系统以函数为单位编译源程序。
2. 若a,b,c都是实型变量,则下列语句中除 (2) 之外,都可能得不到正确的计算结果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);
B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正确的常量是(3 )。
A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’
4. 若已有声明“float x= -1234.5678; int m,n=4;”则执行“m=printf(“\n%8.3f\n”,x)/n;”语句后,
变量m的值是 (4) 。
A. 2 B. 3 C. 4 D. 5
5. 若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确
的是 (5) 。
A. case 1.1: scanf("%d",x1);break;
B. case 1+2: scanf("%f",x2); break;
C. case 'x':
case 'y'-1: scanf("%ld",x3); break;
D. case x4: scanf("%c",x4); break;
6. 33.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是 (6) 。
A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部变量声明中,正确的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下语句中,正确的是 (8) 。
A.if(ab)m=a;n=b;else m=b;n=a;
B.if(ab){m=a;n=b;else m=b;n=a;}
C.if(ab)m=a,n=b;else m=b,n=a;
D.if(ab){m=a;n=b;}else(a=b){m=b;n=a;}
9.24.已知有声明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,则以下表达式
求值时除 (9 ) 外,其结果都可能是不准确的。
A. x=t/c B. t=d/x C. t=d/1e5f D. t=x+c
10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句
是 (10) 。
A.for(j=15;j0;j-=2) k++;
B.for(j=0;j15;j+=2) k++;
C.for(i=0;i15;i+=2) k++;
D.for(i=15;i0;i-=2) k++;
11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. zyx
C. xy==1
D. x(y=2)
12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有声明“int x=3;”,以下选项中与“x+=x =x+1”功能不等价的表达式是 (13 ) 。
A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有声明“int a=2; ”,则执行语句“printf("%d", a, a+1 );”后的输出结果是 (14) 。
A.语法错 B. 2,3 C. 2 D. 3
15.语句“if (!n) n++;”中的“!n”等价于如下 (15) 条件的判定。
A.n==0 B.n!=0 C.n0 D.n0
16.若已有声明“int a=1; ”,则以下表达式中错误的是 (16 ) 。
A.-a++ B.+a-- C.--a D.++-a
17.下列 (17) C语言表达式能正确表达数学计算式1÷× 2xy。
A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)
18. 已有声明“int a=3,b=3,c=2;”,以下表达式中值为0的是 (18) 。
A. !a!bc B. !a || !b || c C. a==b b=c D. a=b bc
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 则表达式 wx?x--:yz?y--:++z 的值为 (19 ) 。
A. 4 B. 3 C. 2 D. 1
20. 已知某程序中有以下片断:
#define p 2.5
main( )
{ float x=p;
}
则main函数中标识符p代表一个 (20) 。
A. float型变量 B. double 型变量 C. float型常量 D. double 型常量
20.
填空题
1.21.设有如下程序段:
int a=2, b, c=5 ;
scanf( “%d” , b) ;
b = c-- || scanf (“%d” , c ) a++;
执行该程序段时,若从键盘上输入的数据是 4ƀ3 (ƀ代表空格键) , 则变量c 的值为 (21) 。
2. signed和unsigned只能用于声明int型变量和 (22) 型变量。
3.代数式“||”的C语言表达式是 (23) 。
4.已有声明“int a=-13,n=7;”,表达式“a%=n%=4”求值后变量a的值为 (24) 。
5.已有声明“unsigned int a=30; ” ,那么 –a 的值为___(25)____。
6.
如下程序执行后的输出是____(26)____。
#includestdio.h
main ( )
{
int i=1,m=0;
switch ( i )
{
case 1 :
case 2 : m++;
case 3 : m++;
}
printf ( “%d” ,m);
}
7.C语言的三个逻辑运算符(!、、||)中,优先级高于算术运算符的是
(27) 。
8.已知sizeof(int)的值为2,执行如下程序后输出结果为 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf("%d %d\n",a,b);
}
9.若有声明“int a=3,b=0,c=5;”, 则表达式 !a+b+c-1b+c/2 的值是 (29) 。
10.若有声明“int x=1,y=2;” ,则表达式 ++x, x+y++ 的值是 (30) 。
三、阅读程序题
1.在PC机的TC中执行以下程序后的输出是: (31) 。
main()
{
unsigned x=0x7f39;
int y;
char c;
c=x;
x+=0307;
y=x;
printf(“%d,%x,%c”,x,y,c);
}
2.以下程序运行后的输出结果是 (32) 。
#includestdio.h
main ( )
{ int x=30, y=45;
while(x!=y)
if(xy)x-=y;
else y-=x;
printf("%d", x);
}
3.
以下程序运行后输出结果的第一行是 (33) ,第二行是 (34) 。
#includestdio.h
#includemath.h
void main()
{ int a=0x65,b,c,count=0;
b=a;
while(b0)
{ b=b/8;
count++;
}
printf("%d\n",count);
while(count0)
{ c=pow(8,count-1);
printf("%d",a/c);
a=a%c;
count--;
}
}
4.以下程序运行时输出结果是 (35) 。
#include stdio.h
main()
{
int i,x=3,y=5;
for(i=0;i3;i++)
switch(y%x)
{
case 0: printf("%d",y);
case 1: printf("%d",y--);break;
case 2: printf("%d",--y);break;
}
}
5.以下程序执行后,输出结果的第一行是 (36) ,第二行是 _(37)______。
#define N 100
main()
{ int i=0,sum=0;
do
{ if(i==(i/2)*2)
continue;
sum++;
if(sum3)
break;
}while(++iN);
printf("%d \n %d", sum,i);
}
四、完善程序题
1.下列程序的功能是按从键盘上输入的整数m,判断2m -1是否为素数,若为素数再求2m -1的反序数。例如:m为17,217 –1(131071)是素数,其反序数是170131。
#include stdio.h
(38)
main()
{
int m,j;
long q,k1,k2=0,k3;
scanf("%d",m);
k3=k1=pow(2,m)-1;
q=sqrt(k1);
for(j=2;j=q;j++)
if( (39) ) break;
if(jq)
{ while(k30)
{ k2=k2*10+ (40) ;
k3/=10;
}
printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n",m,k1,k2);
}
else
printf("m=%d isn't a prime.\n",m);
}
2. 以下程序找到并输出所有满足给定条件的四位十进制表示的正整数:该数是某个数的平方、该数的后二位是25、组成该整数的各位数字中有两位是2。例如:1225是满足所给条件的四位正整数(352=1225)。
#includestdio.h
#includemath.h
main()
{ long i,j,s,d=0;
for(i=1000;i10000;i++)
{ (41) ;
j= (42) ;
if(i==j*j i%100==25)
{ s=i;
while(s0)
{ if( (43) )d++;
s=s/10;
}
if(d==2) printf("\n %d",i);
}
}
}
3..下列程序计算下列数学函数展开式的近似值,累加运算在最后一项的绝对值小于10-6时停止。
程序运行时从键盘上分别三个实数-1.0、0.5、1.0,作为x的值。
#include stdio.h
#include math.h
#define EPS 1.0e-6
main()
{ double x,n,tn,ft,sn,xn;
int i;
for(i=0;i3;i++)
{ (44) ;
ft=1.0;
scanf("%lf",x);
sn=xn=x;
do{
xn=xn*x*x;
ft=ft*(2*n-3)/(2*n-2);
tn=ft*xn/ (45) ;
sn=sn+tn;
n=n+1;
}while( (46) );
printf("f(%lf)=%0.6lf\n",x,sn);
}
}
《C语言程序设计》试卷答题纸
(本试卷满分100分)
系科_____________学号_____________姓名_____________成绩____________
单项选择题得分 填空题得分 阅读程序题得分 完善程序题得分 总分
一 、单项选择题
(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)
二、填空题
(21) (22)
(23) (24)
(25) (26)
(27) (28)
(29) (30)
三、阅读程序题
(31) (32)
(33) (34)
(35) (36)
(37
四、完善程序题
(38) (39)
(40) (41)
(42) (43)
(44) (45)
(46)
《C语言程序设计》试卷参考答案
(本试卷满分100分)
一 、单项选择题
(1)C (2)D (3)D (4)A (5) B
(6)B (7)C (8)C (9)D (10)A
(11)C (12)A (13)A (14)C (15)A
(16)D (17)A (18)A (19)B (20)D
二、填空题
(21) 4 (22) char
(23) fabs(exp(sqrt(1+sin(x)))) (24) -1
(25) 65506 (26) 2
(27) ! (28) 0 -32768
(29) 1 (30) 4
三、阅读程序题
(31) -32768, 8000, 9 (32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7
四、完善程序题
(38) #include math.h (39) k1%j==0
(40) k3%10 (41) d=0
(42) sqrt(i) (43) s%10==2
(44) n=2.0 (45) (2*n-1)
(46) fabs(tn)EPS
C语言习题 以下定义语句中正确的是() A. int a=b=0 ; B. char A=65+1; b='b';
int a=b=0 ;
不能对未定义的b赋值
char A=65+1; b='b';
中间是分号,所以b未定义
float a=1 ,*b=a, *c=b;
b和c未定义
大一C语言期末考试求题库
一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分)
1、不是C语言基本数据类型的是( )。
A、指针类型 B、整型
C、字符型 D、实型
2、设有:int a=3, b= 4, c= 5,x , y; 表达式0 (x=a)(y=b)的值为( )。
A、1 B、0 C、3 D、4
3、设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( )。
A、18 B、-3 C、9 D、12
4、执行以下程序段后,输出的y值为( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=a[0];
y=*p; printf(“%d”,y);
}
A、2 B、4 C、6 D、8
5、有定义语句:float a[4];则分配给数组a的内存空间为( )字节。
A、 20 B、 12 C、 16 C、10
6、以下描述错误的是( )。
A、break语句可用于while语句。
B、break语句和continue语句的作用是一样的。
C、在循环语句中使用break语句是为了跳出循环,提前结束循环。
D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。
7、C语言中规定,if语句的嵌套结构中,else总是( )。
A、与最近的if 配对 B、与第一个if 配对
C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对
8、说明语句“int (*p)( ); ”的含义是( ) 。
A、p是一个指向一维数组的指针变量。
B、p是指针变量,指向一个整型数据。
C、p是一个指向函数的指针,该函数返回一个int型数据。
D、以上都不对。
9、以下对二维数组c的正确声明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段执行后输出结果为( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、编译出错
二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)
1、C语言提供的三种逻辑运算符是 、 || 和!;
2、函数的返回值是通过函数中的 return 语句获得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ _;
4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;
5、单向链表的尾节点next指针应赋值__ NULL___;
6、在语句for(x=1,y=3;xy;y++)中循环体执行的次数为 0 。
7、int a[5];数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为 2004 。
三、程序填空题(共2题,共5空,每空4分,共20分)
1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。
#include stdio.h
int main( )
{ int i, n, flag;
float sum;
scanf("%d", n);
flag= 1 ;
sum=0;
for(i=1;i=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。
#include stdio.h
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i=n;i++)
{ scanf(“%d”, a);
if(a0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(“正数:d个,零:%d个,负数:%d个\n”, count1,count2,count3 );
}
四、运行程序结果题(共4题,每题6分,共24分)
1、写出程序运行结果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=x; p2=y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
运行结果为:
程序有错,不能运行!或写:
x=2,y=1
2、写出程序运行结果。
#includestdio.h
int max(int a,int b)
{ int c;
c=ab?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=ab?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(“min=%d\n”,min(a,b));
}
运行结果为:
程序有错,不能运行!或写:
max=6
min=2
3、写出程序运行结果。
#include stdio.h
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i3;i++)
for(j=0;j3;j++)
if(i==j) sum=sum+a[i][j];
printf(“sum=%d\n”,sum);
}
运行结果为:
程序有错,不能运行!或写:
sum=15
4、写出程序运行结果。
void main( )
{ int n,f;
n=1;
while(n=10)
{ f=f*n;
n+=2;
}
printf(“f=%d\n”,f);
}
运行结果为:
程序有错,不能运行!或写:
f=不确定
五、程序设计题(共2题,每题13分,共26分)
1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。