习 题 4
一、选择题
1.定义字符数组c[5],下面输入输出函数的格式正确的是( )。
(A)scanf("%s",&c); (B)scanf("%s",c);
(C)printf("%s",c); (D)printf("%s",&c)
2.定义了一维数组“int a[10];”,下面表达式错误的是( )。
(A)a[0]=0; (B)a[10]=0;
(C)a[0]=a[2]; (D)a[0]=2;
3.下面选项错误的是( )。
(A)char c[6]="Japan"; (B)char c[6]="ni shi";
(C)char c[6]="Jap"; (D)char c[6]="nishi";
4.下面关于字符串的比较,错误的是( )。
(A)if(s1 s2) printf("1"); (B)if(strcmp(s1,s2)0) printf("1");
(C)strcmp("a","c")0 (D)strcmp("1","1")==0;
5.有两个字符数组c1、c2,则以下正确的输入语句是( )。
(A)gets("c1"); (B)scanf("%s%s",c1,c2);
(C)scanf("%s%s",&c1,&c2); (D)gets(c1,c2);
6.下面程序段的运行结果是( )。
chars1[10]="abcdef";
chars2[10]="ABC";
st r cpy(a,b);
pr int f("%c",s2[2]);
(A)空格 (B)0 (C)c (D)C
7.下面定义二维数组的方法正确的是( )。
(A)int ch[2][3]; (B)int st(2,4);
(C)double st[][3] (D)float ch(3)(3);
8.已知下面的二维数组,下标分别为2、1的元素是( )。
1 2 3
4 5 6
7 8 9
(A)1 (B)5 (C)7 (D)8
9.下列判断字符串s1[]=“abadr”和字符串s2[]=“ABTR”大小的表达式中,正确的是( )。
(A)if("abadr""ABTR") (B)if(strcmp(s1 s2))
(C)if(strcmp(s1,s2)0) (D)if(strcmp(s1,s2)=0)
10.以下为一维浮点型数组x的正确说明是( )。
(A)float i=3,x[i]; (B)float x[0];
(C)int n; (D)float x[5];
scanf("%d",&n);
float x[n];
11.下面初始化数组的方法正确的是( )。
(A)char c[6]={“nin hao”};
(B)char c[6]=“nin hao”
(C)char c[6]={n,i,,h,a,o};
(D)char c[6];
c[0]=n,c[1]=I,c[2]=,c[3]=h,c[4]=a,c[5]=o
12.定义了数组c[10],下面的赋值正确的是( )。
(A)scanf("%s",c); (B)c[3]=n;
(C)scanf("%s",&c); (D)c[10]=n;
13.二维数组char c[3][4]行标的上限为( )。
(A)3 (B)2(C)4 (D)0
14.定义字符数组为“char c[]="12345";”,下面关于字符串处理函数表述错误的是( )。
(A)gets(c) (B)puts(c) (C)gets("12345") (D)puts("12345")
15.下面程序段执行的结果是( )。
char c1[10]="12",c2[10]="1234";
pr int f("%d\n",st r cmp(c1,c2));
(A)3 (B)1(C)-1 (D)0
16.对下面两个字符数组的比较错误的是( )。
char c1[10]="12",c2[10]="1234";
(A)strcmp(c1,"1234"); (B)strcmp(c1,c2);
(C)strcmp("12","1234"); (D)"12"<"1234"
17.下面程序段执行的结果是( )。
char s1[]="ABCWQ",s2[]="aaBC";
print f("%d\n",st rncmp(s1,s2,2));
(A)32 (B)1(C)-1 (D)0
18.下面程序段执行的结果是( )。
char s1[]="ABCWQ",s2[]="aBC";
print f("%d\n",st rnicmp(s1,s2,2));
(A)32 (B)1(C)-1 (D)0
19.下面程序段执行的结果是( )。
char c[10]="ni*hao";
pr int f("%d\n",st r len(c));
(A)5 (B)61(C)7 (D)8
20.下面程序段执行的结果是( )。
charc1[20]="ni hao";(https://www.daowen.com)
char c2[6]="cathy";
pr int f("%s",st rcat(c1,c2));
(A)ni haocathy (B)nihaocathy(C)nihao cathy (D)错误
21.下面程序段执行的结果是( )。
char c1[10]="ABCD",c2[6]="abc";
st rncpy(c1,c2,3);
print f("%s\n",c1);
(A)ABC (B)aBCD(C)abcD (D)abc
22.下面程序段执行的结果是( )。
char c1[3]="ABcd";
st r lwr(c1);
print f("%s\n",c1);
(A)ABCD (B)abcd (C)ABcd (D)abCD
23.下面程序段执行的结果是( )。
char c1[3]="ABcd";
st rupr(c1);
pr int f("%s\n",c1);
(A)ABCD (B)abcd (C)ABcd (D)abCD
24.下面程序段执行的结果是( )。
char s1[]="abcd",s2[]="ABCD";
swab(s2,s1,2);
print f("%s\n",s1);
(A)ABCD (B)abcd (C)BAcd (D)abCD
25.下面程序段执行的结果是( )。
char s1[]="12345",s2[]="t reF";
st r rev(s1);
st r rev(s2);
pr int f("%s\n%s\n",s1,s2);
(A)12345 (B)54321 (C)12345 (D)54321
Fert Fert treF treF
26.下面程序段执行的结果是( )。
char s1[]="123",c1=r;
st rset(s1,c1);
pr int f("%s\n",s1);
(A)rrr (B)r23 (C)123 (D)r
27.下面程序段执行的结果是( )。
char s1[]="ABCD",c1=T;
st rset(s1,c1,2);
print f("%s\n",s1);
(A)TBCD (B)TTCD (C)TTTT (D)T
二、填空题
1.要输出如下图形:
*
**
***
****
请补全程序。
#inc lude stdio.h

2.补全程序,实现以每行5个元素的形式输出如下数组。
1 3 5 7 9
2 6 10 14 18
3 9 15 21 27
4 12 20 28 36
5 15 25 35 45

如果程序改为下面的形式,请补全程序实现上面的要求。


3.为实现将3行2列的数组A转换为2行3列的数组B,请将下面的程序补全。

4.下面程序的运行结果是________。


三、编程题
1.定义一个3行4列的二维数组,并使用至少三种方法为第一行元素赋值1、2、3、0,为第二行元素赋值4、5、0、0,为第三行元素赋值0、0、0、0,并使用其中一种方法编写程序完成输出该数组各元素的值,且分三行显示。写出程序并将运行结果截图。
2.依次输入5个数,并按从大到小的顺序排序。请使用两种方法编写程序。写出程序并将运行结果截图。
3.有一个4×3的矩阵,其值自己定。要求编写程序求出其中值最大和最小的那个元素的值,以及其所在的行号和列号。写出程序并将运行结果截图。
4.要求使用字符数组输出一个至少5行的菱形。请使用至少两种方法编写程序。写出程序并将运行结果截图。
5.使用字符数组输出“My name is+自己姓名的全拼”。请使用至少两种方法编写。写出程序并将运行结果截图。
6.编写程序输出以下矩阵:
