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 a5=1; C) int a3=5,6,8,3; D) int a5=0;5). 下列要将2,4,6,8存入数组a中,不正确的是_.B) int a4=2,4,
2、6,8; B) int a =2,4,6,8;C) int a4; a=2,4,6,8; D) int a4; a0=2;a1=4,a2=6;a3=8;6)下列二维数组定义并初始化中, 正确的是 A) int a2 =3,4,5,10,15;B) int a23=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 a55; 则对数组元素的正确引用是_.A) a3+23 B) a0,3 C) a41+2 D) a 28).若有定义: char ch =”bo
3、ok120”; 则数组ch的存储长度是_;A) 7 B) 8 C)9 D)109) 设有定义: char s20; 向数组s中输入含有中间空格的字符串应使用的语句是_.A)scanf(“%s”,&s); B) scanf(“%s”,s); C)s=getchar(); D)gets(s);10).在数组: int a3=1,3,2,4,5,6,0; 中, 数组元素a21的值是_.A)3 B) 4 C) 5 D) 211) 以下字符串赋值错误的是_。A)char s1 =”abcdef”; B)char s210; s2=”abcdefg”;C)char *ps=”abcdef”; D)char
4、 *pa; pa=”abcdefg”;12) 设有如下定义: char s120 =”Tianjin”, s210 =”Bbeijing”;执行语句: strcpy(s1,s2); printf(“%s”,s1); 后, 输出结果是:_.A) Tiajinn B) Beijing C) TianjinBeijing D) TianBeij13). 设有定义语句:int m =5,4,3,2,1,i=2;,下面数组元素引用错误的是_,A)m-i B)mi*i C)mm0 D)mi-214. 下面的函数调用语句中fun函数的参数个数是 fun(fun(a,a+b,a+c),(a+b+c),25);
5、A) 3 B)4 C)5 D)6 15)设有定义:int a6=1,2,3,4,5,6 , *p=a;, *(p+3)的值是A) 3 B)4 C)5 D)6 二阅读程序选择题 1.有以下程序: #includevoid 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,22.有以下程序: #include void sub (int x,int y,int *z) *z=
6、x-y; void main() int a,b,c;sub(10,6,&c);sub(8,c,&b);sub(c,b,&a);printf(“%d %d %dn”,a,b,c);程序的输出结果是:A) 10 8 0 B) 10 6 4 C)8 4 4 D) 0 4 4 3.有以下程序: #include 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 ”,ak);printf(“n”);void fun(int s ) int i=0; while(i3) s
7、i=si+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,a5=1,2,3,4,5; k=a0; for(j=0; j4; j+)aj=aj+1; a4=k;for(j=0;j=5;j+) printf(“%d ”,aj) 程序的输出结果是: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 vo
8、id main( ) char a =“AAAAAA”, *p; p=a; while(*p!=0) printf(“%sn”,p); p+; 2)#include #include void main() int k=0;char s110=”Program”, s25=”Computer”;strcat(s2,s1);printf(“%sn%sn”,s1,s2); 3) #include void main() int j, a =1,2,3,4,10,12,13,15;for( j=3; j0; j-) switch ( j ) case 1: case 2: printf(“%d,”,
9、 aj+4); break; case 3: printf(“%d,”, aj-1); printf(“n”);4) #include long fx(int n) long s;if(n=0) s=1;else s=n+fx(n-2); /递归调用return s;void main() printf(“%ldn”,fx(10); 运行结果: 三.程序填空1. 以下程序输出s数组中最大元素的下标, 在程序_处填空完成该程序.#include #define N 10void main() int k,i;int sN=3,7,-2,19,-6,4,12,8,10,2;for(i=0,k=0;
10、 isk) _;printf(“%dn”,k);3. 以下程序求任意10个实数的最大值和最小值,填空完成该程序.#include void main() int i;float a10,max,min;for(i=0;i10;i+) scanf(“%f”,&ai);max=min= _ ;for(i=1;_; i+) if(maxai) _;printf(“最大值=%fn”,max);printf(“最小值=%fn”,min); 4对输入的100个数按照由小到大的次序排序,输出排序后的结果。#include stdio.h#define SIZE 100void main() int i,j,dataSIZE,temp,min;printf(请输入 %d 个整数:,SIZE); for (i=0;iSIZE;i+) scanf(%d,_ );for (i=0;iSIZE;i+) min =i; for (j=i+1;jSIZE;j+)if (datajdatamin)_; temp=datamin;datak=_;datai=_;printf(排序后:);for (i=0;iSIZE;i+) printf(%5d,_);printf(n)4