C语言第2次练习题
一. 选择题
1)一个C程序的执行是________.
A.从程序的main( )函数开始执行。
B.从本程序的第一个函数开始执行。
C.从本程序第一条语句开始执行
D.从#include 处开始执行
3) 定义 int a, *p1; 若使p1指向a,在程序中应使用_______。
A.*p1=&a; B. p1=&a; C. p1=a; D. p1=*a;
4) 下列为一维数组初始化时, 正确的是_______.
A) int a[ ]={1,3,5,….15}; B) int a[5]=1; C) int a[3]={5,6,8,3}; D) int a[5]={0};
5). 下列要将2,4,6,8存入数组a中,不正确的是______.
B) int a[4]={2,4,6,8}; B) int a[ ]={2,4,6,8};
C) int a[4]; a={2,4,6,8}; D) int a[4]; a[0]=2;a[1]=4,a[2]=6;a[3]=8;
6).下列二维数组定义并初始化中, 正确的是
A) int a[2][ ]={{3,4},{5,10,15}};
B) int a[2][3]={2,3,4,5,6,7,8,9};
C) int a[ ][3]={{0},{1,2},{3,4,5}};
D) int a[ ][4]={(1,2,4,5),(2,3),(3,4,9),(5,6,8)};
7). 若有说明: int a[5][5]; 则对数组元素的正确引用是______.
A) a[3+2][3] B) a[0,3] C) a[4][1+2] D) a[ ][2]
8).若有定义: char ch[ ]=”book120”; 则数组ch的存储长度是____;
A) 7 B) 8 C)9 D)10
9) 设有定义: char s[20]; 向数组s中输入含有中间空格的字符串应使用的语句是______.
A)scanf(“%s”,&s); B) scanf(“%s”,s); C)s=getchar(); D)gets(s);
10).在数组: int a[][3]={{1},{3,2},{4,5,6},{0}}; 中, 数组元素a[2][1]的值是________.
A)3 B) 4 C) 5 D) 2
11) 以下字符串赋值错误的是________。
A)char s1[ ]=”abcdef”; B)char s2[10]; s2=”abcdefg”;
C)char *ps=”abcdef”; D)char *pa; pa=”abcdefg”;
12) 设有如下定义: char s1[20 ]=”Tianjin”, s2[10 ]=”Bbeijing”;
执行语句: strcpy(s1,s2); printf(“%s”,s1); 后, 输出结果是:_______.
A) Tiajinn B) Beijing C) TianjinBeijing D) TianBeij
指针与二维数组13). 设有定义语句:int m[ ]={5,4,3,2,1},i=2;,下面数组元素引用错误的是____,
A)m[--i] B)m[i*i] C)m[m[0]] D)m[i-2]
14. 下面的函数调用语句中fun函数的参数个数是
fun(fun(a,a+b,a+c),(a+b+c),25);
A) 3 B)4 C)5 D)6
15)设有定义:int a[6]={1,2,3,4,5,6 }, *p=a;, *(p+3)的值是
A) 3 B)4 C)5 D)6
二.阅读程序选择题
1.有以下程序:
#include<stdio.h>
void f (int a, int b )
{ int c;
c=a; a=b ; b=c;
}
void main()
{ int x =2, y = 3 ;
f (x, y );
printf(“%d, %d \n”, x, y );
}
程序的输出结果是:
A)2,3 B)2,2 C)3,3 D)3,2
2.有以下程序:
#include <stdio.h>
void sub (int x,int y,int *z)
{ *z=x-y; }
void main()
{ int a,b,c;
sub(10,6,&c);
sub(8,c,&b);
sub(c,b,&a);
printf(“%d %d %d\n”,a,b,c);
}
程序的输出结果是:
A) 10 8 0 B) 10 6 4 C)8 4 4 D) 0 4 4
3.有以下程序:
#include <stdio.h>
void fun(int s[ ]);
void main()
{ int a[ ]={1,2,3,4,5,6},k;
fun(a); //数组作参数
for(k=0;k<=5;k++) printf(“%d ”,a[k]);
printf(“\n”);
}
void fun(int s[ ])
{ int i=0;
while(i<3) { s[i]=s[i]+5; i++; }
}
程序的输出结果是:
A) 1 2 3 4 5 6 B) 6 7 8 9 10 11 C) 6 7 8 4 5 6 D) 6 7 8 9 5 6
4. 有以下程序:
void main( )
{ int j,k,a[5]={1,2,3,4,5};
k=a[0];
for(j=0; j<4; j++)
a[j]=a[j+1];
a[4]=k;
for(j=0;j<=5;j++)
printf(“%d ”,a[j])
}
程序的输出结果是:
A) 1 2 3 4 5 B) 2 3 4 5 1 C) 5 1 2 3 4 D) 5 4 3 2 1
三.阅读以下程序,写出各程序运行后的结果.
1) #include "stdio.h"
void main( )
{ char a[ ]=“AAAAAA”, *p;
p=a;
while(*p!=’\0’)
{ printf(“%s\n”,p);
p++; }
}
2)#include <stdio.h>
#include <string.h>
void main()
{ int k=0;
char s1[10]=”Program”, s2[5]=”Computer”;
strcat(s2,s1);
printf(“%s\n%s\n”,s1,s2);
}
3) #include <stdio.h>
void main()
{ int j, a[ ]={1,2,3,4,10,12,13,15};
for( j=3; j>0; j--)
switch ( j )
{ case 1:
case 2: printf(“%d,”, a[j+4]); break;
case 3: printf(“%d,”, a[j-1]);
}
printf(“\n”);
}
4) #include <stdio.h>
long fx(int n)
{ long s;
if(n==0) s=1;
else s=n+fx(n-2); //递归调用
return s;
}
void main()
{ printf(“%ld\n”,fx(10)); }
运行结果:
三.程序填空
1. 以下程序输出s数组中最大元素的下标, 在程序_____处填空完成该程序.
#include <stdio.h>
#define N 10
void main()
{ int k,i;
int s[N]={3,7,-2,19,-6,4,12,8,10,2};
for(i=0,k=0; i<N; i++)
if(s[i]>s[k]) _________;
printf(“%d\n”,k);
}
3. 以下程序求任意10个实数的最大值和最小值,填空完成该程序.
#include <stdio.h>
void main()
{ int i;
float a[10],max,min;
for(i=0;i<10;i++) scanf(“%f”,&a[i]);
max=min= __________ ;
for(i=1;__________; i++)
{ if(max<a[i]) ______________;
if(min>a[i]) ______________;
}
printf(“最大值=%f\n”,max);
printf(“最小值=%f\n”,min);
}
4.对输入的100个数按照由小到大的次序排序,输出排序后的结果。
#include "stdio.h"
#define SIZE 100
void main()
{ int i,j,data[SIZE],temp,min;
printf("请输入 %d 个整数:",SIZE);
for (i=0;i<SIZE;i++) scanf("%d",_____________ );
for (i=0;i<SIZE;i++)
{ min =i;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论