#include
{ int i=1,t=1,s=0;
for(i=1;i<=101; i=i+2 )
{ ; ;} printf(“%d\\n”,s); }
四、阅读下列程序,写出程序运行的输出结果
1.void main( ) { int y=9;
for( ;y>0; y--)
if(y%3==0) { printf(\}
程序运行后输出结果为 2. main( ) { int n1,n2; scanf(\while(n2!=0)
{ n1=n2; n2=n2/10; printf(\}
程序运行后,如果从键盘上输入1298;则输出结果为 3. main ( ) {int s,i;
for(s=0,i=1;i<3;i++,s+=i); printf(\}
程序运行后输出结果为 4. #include
{ int s=1,t=1,a,n;
scanf(\ for(int i=1;i s*=a; printf(\} 程序运行后,如果从键盘上输入2,4;则输出结果为 - 13 - 五、程序改错 1、以下程序是显示[200,300]所有能被7整除的数,每行显示5个数,此程序有 5处错。 main( ) { int i,n=0; /*n用来记录每行已打印数的个数*/ while(i<300) { if(i%7==0) break; printf(\ n=n+1; if(n=5)/*满5个换行*/ { printf(\ } } 2、以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。 main() { int i,s,t=0; for(i=1;i<=7;i++) { s=0; t=t*i; s=s+t; } printf(\ } 六、选做题 1.求序列2/1,3/2,5/3,8/5,13/8,21/13,的前20项之和。 2.请完成用一元人民币换成一分、两分、五分的所有兑换方案。 - 14 - 7 数组 一、单项选择题 1、int a[4]={5,3,8,9};其中 a[3]的值为( )。 A. 5 B. 3 C. 8 D. 9 2、以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。 A. gets B. strcpy C. strlen D. strcmp 3、以下 4 个数组定义中,( )是错误的。 A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n]; 4、字符数组进行初始化,( )形式是错误。 A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\\0'}; D. char c4[ ]=\5、在数组中,数组名表示( )。 A. 数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后 1 个元素的首地址 6、若有以下数组说明,则数值最小的和最大的元素下标分别是( )。 int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; A. 1,12 B. 0,11 C. 1,11 D. 0,12 7、若有以下说明,则数值为 4 的表达式是( )。 int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ; A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8、设有定义:char s[12] = \; 则printf( \的输出是( )。 A. 6 B. 7 C. 11 D. 12 9、设有定义:char s[12] = \则printf(\\sizeof(s)); 的输出是( )。 A. 6 B. 7 C. 11 D. 12 10、合法的数组定义是( )。 A. char a[ ]= \D. char a[ ]={0,1,2,3,4,5} 11、合法的数组定义是( )。 A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][3] ={0,1,2,3,4}; C. int a[2][3]={0,1,2,3,4,5,6}; D. int a[2][3]={0,1,2,3,4,5,}; 12、下列语句中,正确的是 ( )。 A. char a[3][ ]={'abc', '1'}; B. char a[ ][3] ={'abc', '1'}; C. char a[3][ ]={'a', \ 13、下列定义的字符数组中,输出 printf(\的输出是( )。 static str[3][20] ={ \ - 15 - A. basic B. foxpro C. windows D. 输出语句出错 14、下列各语句定义了数组,其中哪一个是不正确的( )。 A. char a[3][10]={\ B. int x[2][2]={1,2,3,4}; C. float x[2][ ]={1,2,4,6,8,10}; D. int m[][3]={1,2,3,4,5,6}; 15、数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( )。 A. a[3][2] B. a[2][1] C. a[1][2] D. a[2][3] 16、下面的程序中哪一行有错误( )。 #include float array[5]={0.0}; //第A行 int i; for(i=0;i<5;i++) scanf(\ for(i=1;i<5;i++) array[0]=array[0]+array[i];//第B行 printf(\第C行 } A. 第A行 B. 第B行 C. 第C行 D. 没有 17、下面哪一项是不正确的字符串赋值或赋初值的方式( )。 A. char *str; str=\ B. char str[7]={'s','t','r','i','n','g'}; C. char str1[10];str1=\18、若有以下说明和语句,则输出结果是哪一项( )。 (strlen(s)为求字符串s的长度的函数) char s[12]=\A. 12 B. 8 C. 7 D. 11 19、若有以下说明和语句,则输出结果是( )。 char sp[]=\A. 14 B. 3 C. 9 D. 字符串中有非法字符 20、若有以下说明和语句,则输出结果是( )。 char str[]=\A. 字符串中有非法字符 B. \\\C. \ 二、填空题 1、C 语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,下标必须是正整数、0、或者 。但在程序执行过程中,不检查元素下标是否 。 2、C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。 - 16 -

