习 题 (第6章)
1. 选择题
(1) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。
int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};
A. 1,12 B. 0,11 C. 1,11 (2) 若有以下说明,则数值为4的表达式是( )。
A. a[g-c]
B. a[4]
C. a['d'-'c']
D. 0,12
int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
D. a['d'-c]
(3) 设有定义:char s[12] = \则printf( \的输出是( )。 A. 6 B. 7 C. 11 D. 12 (4) 设有定义:char s[12] = \则printf(\的输出是( )。 A. 6 B. 7 (5) 合法的数组定义是( )。
A. char a[ ]= \ C. char a= \ (6) 合法的数组定义是( )。
C. 11
D. 12
B. int a[5] ={0,1,2,3,4,5}; D. char a[ ]={0,1,2,3,4,5}
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,}; (7) 函数调用strcat(strcpy (str1,str2),str3); 的功能是( )。
A. 将字符串str1复制到字符串str2中后再连接到字符串str3 之后
B. 将字符串str1连接到字符串str2之后再复制到字符串str3 之后
C. 将字符串str2复制到字符串str1中后再将字符串str3 连接到字符串str1之后 D. 将字符串str2连接到字符串str1之后再将字符串str1 复制到字符串str3中 (8) 有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是( )。
char a[ ]=\
A. strcmp(a,b) ==0 B. strcmp(a,b)>0 D. a
C. strcmp(a,b)<0 (9) 设有如下定义,则正确的叙述为( )。
char x[ ]= \
char y[ ]={'a','b','c','d','e','f','g'};
A. 数组x和数组y等价 B. 数组x和数组y长度相同 C. 数组x的长度大于数组y的长度 D. 数组x的长度小于数组y的长度 (10) 设有二维数组定义如下,则不正确的元素引用是( )。
第7章 数组
int a[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
·97·
A. a[2][3] a[2]['c'-'a'] 2. 填空题
B. a[a[0][0]][1] C. a[7] D.
(1) C语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,但在程序执行过程中,不检查元素下标是否 。下标必须是正整数、0、或者 。 (2) C语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。
(3) 执行 int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = ,a[1][2] = 。 (4) 设有定义语句 char a[10] = \则a[3]值为 ,a[5]值为 。 (5) 若在程序中用到putchar ( )函数,应在程序开头写上包含命令 ,若在程序中用到strlen ( )函数,应在程序开头写上包含命令 。
(6) 下面程序的功能是输出数组s中最大元素的下标,请填空。
#include
int k, p;
int s[]={1,-9,7,2,-10,3}; for(p=0,k=p; p<6; p++)
if(s[p]>s[k]) ;
printf(\}
(7) 下面程序在a数组中查找与x值相同的元素所在位置,数据从a[1]元素开始存放,请填空。
#include
int a[11], i, x ;
printf( \输入10个整数:\ for(i=1; i<=10; i++)
scanf( \
printf( \输入要找的数x:\
scanf( \ a[0]=x ; i=10;
while(x != ) ; if( )
printf( \与x值相同的元素位置是:%d\\n\ else
printf( \找不到与x值相同的元素!\\n\
}
(8) 下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
·97·
·98· 第7章 数组
#include \void main( ) {
int i, j, ;
char str[]= \
for(i=0, j=str1en(str); ; i++, j--) { k=str[i]; str[i] =str[j]; str[j]=k;} puts(str); }
/* 头尾交换,直到中间*/
(9) 从键盘输入一串字符,下面程序能统计输入字符中各个大写字母的个数。用#号结束输入,请填空。(该程序利用了字符的ASCII码和整数的对应方法,数组c的下标为0到25,当输入为ca='A'则ca-65=0,c[0]的值加1,依此类推。而输出时c[i]的下标i+65正好又是相应的字母。)
#include
int c[26],i; char ca;
for(i=0; i<26; i++) c[i] = ; scanf( \ while( ) {
if ((ca>='A')&&(ca<='Z')) c[ca-65]+ = ; ; }
for(i=0; i<26; i++)
if(c[i]) printf( \个\\n\}
3. 程序阅读题
(1) 阅读程序,写出运行结果。
#include
int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) {
for(j=0;j<6;j++)
if(a[i]==b[j])break;
if(j<6) printf(\ }
printf(\}
(2) 阅读程序,写出运行结果。
#include
·98·
第7章 数组
{
char a[8],temp; int j,k; for(j=0;j<7;j++)
a[j]='a'+j; a[7]='\\0'; for(j=0;j<3;j++) {
temp=a[6]; for(k=6;k>0;k--)
a[k]=a[k-1];
a[0]=temp;
printf(\ }
}
(3)
阅读下列程序,写出程序运行的输出结果。 #include
int i;
char str1[ ]=\ for(i=0;i<4;i++) {
printf(\ str1[i]=' ';
str1[strlen(str1)-1]='\\0'; }
}
(4)
阅读下列程序,写出程序运行的输出结果。 #include
int a[8]={1,0,1,0,1,0,1,0},i; for(i=2;i<8;i++)
a[i]+=a[i-1]+a[i-2];
for(i=0;i<8;i++)
printf(\
printf(\
}
(5)
写出下列程序的运行结果。 #include
char a[ ]={'*','*','*','*','*'}; int i, j, k ;
for(i=0; i<5; i++) {
·99·
·99·
·100· 第7章 数组
printf( \
for(j=0; j
4. 程序设计题
(1) 编程序。输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。 (2) 求一个3×3矩阵对角线元素之和。
(3) 编程序按下列公式计算s的值(其中x1、x2、?、xn由键盘输入)。(其中x0是x1、x2、?、xn的平均值)
ns?? (xr?1i?x0)2
(4) 输入一个字符串,将其中所有大写字母改为小写字母,并把所有小写字母全部改为大写字母,然后输出。
(5) 某班50名学生的成绩表如下:
课程一 课程二 课程三
… … …
试编一个程序,输入这50名学生的三科成绩,计算并输出每科成绩的平均分。
(6) 输入10个数,保存在数组a中,找出其中的最小数与第一个数交换位置,再输出这10个数。
(7) 假设有10个数存放在数组a中,并且已经按照从小到大顺序排列,现输入一个数,将其插入到数组a中,要求保持数组a的有序性。
(8) 输入一个十进制整数,将其转换为二进制数输出。
·100 ·
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言习题汇总(6-10章)在线全文阅读。
相关推荐: