1、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;
2、 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
3、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
4、 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)ch
5、ar 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)
6、 设有定义语句: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
7、 C)5 D)6
二.阅读程序选择题
1.有以下程序:
#include
8、D)3,2
2.有以下程序:
#include
9、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
10、 有以下程序: 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( )
11、
{ char a[ ]=“AAAAAA”, *p;
p=a;
while(*p!=’\0’)
{ printf(“%s\n”,p);
p++; }
}
2)#include 12、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 13、if(n==0) s=1;
else s=n+fx(n-2); //递归调用
return s;
}
void main()
{ printf(“%ld\n”,fx(10)); }
运行结果:
三.程序填空
1. 以下程序输出s数组中最大元素的下标, 在程序_____处填空完成该程序.
#include 14、) _________;
printf(“%d\n”,k);
}
3. 以下程序求任意10个实数的最大值和最小值,填空完成该程序.
#include 15、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
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818