C语言-第6章 利用数组处理批量数据
更新时间:2024-03-30 00:25:01 阅读量: 综合文库 文档下载
- c语言第6章课后答案推荐度:
- 相关推荐
第6章 利用数组处理批量数据
一、单项选择题
1. 以下对一维数组a的正确说明是:
A) char a(10); B) int a[]; C)int k=5,a[k]; D)char a[]={?a?,?b?,?c?}; 2. 以下能对一维数组a进行初始化的语句是: ( C )
A) int a[5]=(0,1,2,3,4,); B) int a(5)={}; C) int a[ ]={0,1,2}; D) int a{5}={10*1}; 3.在C语言中对一维整型数组的正确定义为 。
A)int a(10); B)int n=10,a[n];
C)int n;a[n]; D) #define N 10
int a[N];
4、已知:int a[10]; 则对a数组元素的正确引用是( )。 A、a[10] B、a[3.5] C、a(5) D、a[10-10] 5. 执行下面的程序段后,变量k中的值为
int k=3, s[2]; s[0]=k; k=s[0]*10;
A) 不定值 B) 33 C) 30 D) 10 6. 下列说法中错误的是 A 构成数组的所有元素的数据类型必须是相同的 B 用指针法引用数组元素允许数组元素的下标越界 C 一维数组元素的下标依次是1、2、3…… D 定义数组时的长度可以是整型常量表达式
7. 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。
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 8. 若有以下数组说明,则i=10;a[a[i]]元素数值是( )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A)10 B)9 C)6 D)5
9. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节
数是 A) 3
B) 6
C) 10 D) 20
10. 若有说明:int a[][3]={1,2,3,4,5,6,7}; 则数组a的第一维的大小为: ( ) A) 2 B) 3 C) 4 D)无确定值
11. 若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( ) A) 2 B) 3 C) 4 D)无确定值 12. 以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3]; C) char s[10]=“test”; D) int n=5,a[n]; int i;
13.下面程序段的输出结果是:
int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=0;i<3;i++) printf(\d \
A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 14. 对二维数组的正确定义是( )
A)int a[ ] [ ]={1,2,3,4,5,6}; B)int a[2] [ ]={1,2,3,4,5,6};
C)int a[ ] [3]={1,2,3,4,5,6}; D)int a[2,3]={1,2,3,4,5,6}; 15.已知int a[3][4];则对数组元素引用正确的是______. A)a[2][4] B)a[1,3] C)a[2][0] D)a(2)(1) 17.下面程序的输出结果是____。
main( ) {
int m[3][3]={ {1}, {2}, {3} }; int n[3][3]={ 1, 2, 3 };
printf(\d\ printf(\d\ }
A)30 B)34 C)56 D)11 (下面的题目是用字符数组处理字符串的相关内容) 18. 在C语言中,以 作为字符串结束标志
A)?\\n? B)? ? C) ?0? D)?\\0? 19.下列数据中属于“字符串常量”的是( )。
A)“a” B){ABC} C)?abc\\0? D)?a? 20.字符串 “ABCD”在内存占用的字节数是( )。
A.4 B.6 C.1 D.5 21. 下面不正确的字符串常量是:( )
A) ?PROGRAM? B “12?12” C “0” D “ ”
22. 设有数组定义: char array [ ]=\则数组array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 23. 下述对C语言中字符数组的描述种错误的是 。
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入和输出
C)可在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)可在对字符数组定义时通过赋值运算符“=”对字符数组整体初始化
24. 已知char x[]=\则关于数组长度正确的是 . A)相同 B)x大于y C)x小于y D)以上答案都不对
25. 给出以下定义:
char x[ ]=\ char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 A) 数组x和数组y等价 B) 数组x和数组y的长度相同 C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度 26. 若有以下语句,则正确的描述是( )。
static char x[ ]=”12345” ;
static char y[ ]={?1?, ?2?, ?3?, ?4?, ?5?} ;
A、x数组长度大于y数组长度 B、x数组和y数组的长度相同 C、x数组长度小于y数组长度 D、x数组等价于y数组
27. 已知:char s[20]= ”programming”, *ps=s; 则不能引用字母o的表达式是( )。 A、ps[2] B、s[2] C、ps+2 D、ps+=2, *ps 28.判断两字符串s1,s2是否相等,应使用( ).
A)if(s1==s2) B)if(s1=s2) C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0) 29.以下printf语句的输出结果为: printf(“%d\\n”,strlen(“school”));
A) 7 B) 6 C)存在语法错误 D)不定值 30. 对字符数组s赋值,不合法的一个是( )
A) char s[]=\ B)char s[20]={\C) char s[20];s=\ D) char s[20]={'B','e','i','j','i','n','g'}; 31. 对字符数组str赋初值,str不能作为字符串使用的一个是( )
A) char str[]=\ B) char str[9]={'s','h','a','n','g','h','a','i',?\\0?}; C) char str[]={\ D) char str[8]={ 's','h','a','n','g','h','a','i'}; 32. 合法的数组定义是
A)int a[]={“string”}; B) int a[5]={0,1,2,3,4,5}; C)char a={“string”}; D) char a[5]={0,1,2,3,4,5}; 33. 对字符数组s赋值,不合法的是:
A) char s[]=\ B) char s[20]={\C) char s[20];s=\ D) char s[20]={'c','h','i','n','a'}; 34. 下面初始化与此初始化charc[ ]=“I am happy”;等价的是( )
A) char c[ ]={?I?,? ?,?a?,?m?,? ?,?h?,?a?,?p?,?p?,?y?,?\\0?}; B) char c[ ]={?I?,?am?,?happy?}; C) char c[ ]={?I?, ??,?a?,?m?,??,?h?,?a?,?p?,?p?,?y?}; D)char c[ ]={?I?,?am?,?happy?,?\\0?}; 35. 下面各语句中,能正确进行赋字符串操作的语句是( )。
A) char s[5]={“ABCDE”}; B) char s[5]={?A?,?B?,?C?,?D?,?E?}; C) char *s;s=“ABCDE”; D) char *s;scanf(“%s”,&s); 36.下列字符串赋值方式不正确的是( )
A).char str[20]; B). char *str ; str=”I am a boy!”; str=”I am a boy!”;
C). char *str=”I am a boy!”; D). char str[20]=” I am a boy!”;
二、阅读程序,写出运行结果
1.
#include
{ int i, a[10]; for(i=9;i>=0;i--)
a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]); }
运行结果为: 852 3.
#include
{ int i,k,a[10],p[3]; k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2;
printf(\d\\n\}
运行结果为: 21
5.
#include
{ printf(“%d,”, m[1][0]+n[0][0]); printf(“%d\\n”,m[0][1]+n[1][0]); }
运行结果为: 3,0
2.
#include
for (i=0; i<6; i++) a[i]=i; for (i=5; i>=0 ; i--) printf(\3d\}
运行结果为: 5 4 3 2 1 04.
#include
{ int n[3][3], i, j; for(i=0;i<3;i++ ) {for(j=0;j<3;j++ ) {n[i][j]=i+j;
printf(“%d ”, n[i][j]); }
printf(“\\n”); } }
运行结果为: 1 2 2 3 3 4
6.
#include
int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=1; i<3; i++)
printf(\d \ }
运行结果为: 6 8
7.
#include
main() {int j;
char str[10]; scanf(“%s”, str);
printf(“%s\\n”,str); }
键盘输入:howare(空格) you(回车) 运行结果为: Howare
9.
#include
8.
#include “stdio.h” func(int b[ ]) { int j;
for(j=0;j<4;j++) b[j]=j; }
main( ) { int a[4], i; func(a);
for(i=0; i<4; i++)
printf(“-”,a[i]); }
运行结果为:0 1 2 3
char diamond[][5]={{?_?,?_?,?*?},{?_?,?*?,?_?,?*?},{?*?,?_?,?_?,?_?,?*?},{?_?,?*?,?_?,?*?},{?_?,?_?,?*?}};
int i,j;
for(i=0;i<5;i++) {for(j=0;j<5;j++)
printf(“%c”,diamond[i][j]); printf(“\\n”);
}}
注:“_”代表一个空格。 运行结果为: __* _*_* *___* _*_* __*
10.
#include
{ int i, f[10];
f[0]=f[1]=1;
for(i=2;i<10;i++)
f[i]=f[i-2]+f[i-1]; for(i=0;i<10;i++) { if(i%4==0) printf(“\\n”);
printf(“%d ”,f[i]); } }
运行结果为: 1 1 2 3 5 8 13 21 34 55 12.
#include
{int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j;
for(i=0;i<=1;i++) {for(j=0;j<=2;j++)
b[j][i]=a[i][j]; }
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf(\5d\ } }
运行结果为:
1 4 2 5 3 6
14.
#include\main() {int j,k;
static int x[4][4],y[4][4]; for(j=0;j<4;j++) for(k=j;k<4;k++) x[j][k]=j+k;
11.
#include
main()
{float fun(float x[]); float ave,a[3]={4.5,2,4};
ave=fun(a); printf(“ave=%7.2f”,ave); }
float fun(float x[]) {int j;
float aver=1; for (j=0;j<3;j++) aver=x[j]*aver; return(aver); }
运行结果为: ave= 36.00
13.
#include
for (i=0;i<=n;i++) r=r*b[i]; return (r); } main()
{int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3);
printf(“%d\\n”,x); }
运行结果为: 24
for(j=0;j<4;j++) for(k=j;k<4;k++) y[k][j]=x[j][k];
for(j=0;j<4;j++) for(k=0;k<4;k++)
printf(\d,\}
运行结果为:
0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6
三、编程题
1.输入10个数,要求按逆序输出。
#include
int i,a[10];
printf(\for (i=0; i<=9;i++)
scanf(\d\
}
2.输入10个数,将其在数组中逆序存放。 #include
int main() {
int i,a[10],temp;
printf(\for (i=0; i<10;i++) for(i=0;i<5; i++) {
temp=a[i]; a[i]=a[9-i]; a[9-i]=temp; }
for(i=9;i>=0; i--)
printf(\d\\t\printf(\ return 0;
scanf(\d\
for (i=0; i<10;i++) printf(\d\\t\ }
3. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
#include
int a[10], i, p=0, n=0, z=0;
printf(“please input 10 numbers: ”); for(i=0;i<10;i++) scanf(“%d,”,&a[i]); for(i=0;i<10;i++){ if (a[i]>0) p++; printf(\return 0;
else if (a[i]<0) n++; else z++; }
printf(“正数:], 负数:],零:]\\n”,p,n,z); return 0; }
4. 从键盘上输入10个数,求其平均值。
#include
int a[10],i,s=0; float ave;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
for(i=0;i<10;i++) sum+=a[i]; ave=(float)sum/10;
printf(\f\\n\
return 0; }
5.从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。 (提示:用数组存放成绩数据) #include
float score[M], max , min, sum,aver; int i ;
printf(“please input score: \\n”); for(i=0; i scanf(“%f”, &score[i]); max=score[0]; min=score[0]; aver=score[0]; for(i=1; i if (max < score[i]) max= score[i]; if (min>score[i]) min=score[i]; sum+=score[i]; } aver=sum/M; printf(“max=%f, min=%f,aver=%f”, max, min, aver); return 0; } 6. 输入10个数存放在数组中,再输入一个数,查找其在数组中第一次出现的位置,若不存在也给出提示。 #include int a[10],i,x; printf(“Input 10 integers:”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“Input the number you want to find:”); scanf(“%d”,&x); for (i=0;i<10;i++) if(a[i]==x) break; if( i<10 ) printf(“The pos of x is:%d\\n”,i+1); else printf(“can not find x!\\n”); return 0; } 7.输入一个字符串(少于80个字符),统计其中数字字符的个数。 #include printf(\ scanf(\s\ for(i = 0; str[i] != '\\0'; i++) if(str[i] <= '9' && str[i] >= '0') count++; printf(\d\\n\ return 0; } 8.编程实现如下功能:从键盘输入一行字符(少于80个字符),统计其中大写英文字符,小写英 文字符和其他字符的个数。 #include char str[80]; int len, i, letter = 0, digit = 0, space = 0, others = 0; printf(\ string:\gets(str); len = strlen(str); for (i=0; i if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z') letter ++; /*统计英文字符*/ digit ++; /*统计数字字符*/ others ++; /*统计其它字符的个数*/ else if (str[i] >= '0' && str[i] <= '9' ) else } } printf(\ %d\\n\printf(\ %d\\n\printf(\ %d\\n\return 0; 9.有10个地区的面积,要求对它们按由小到大的顺序排列。 #include printf(\for (i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<9-j;i++) if (a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} for(j=0;j<9;j++) printf(\for(i=0;i<10;i++) } 10.从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。 #include int i,j,temp; printf(\for(i=0;i<10;i++) scanf(\d\for(j=0;j<9;j++) for(i=1;i<10;i++) printf(“%d\\t\ printf(\ if(a[j] {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } for(i=0;i<10;i++) } 11. 从键盘上输入一个2*3的矩阵,将其转置后形成3*2的矩阵输出。 #include int a[2][3], b[3][2],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) scanf(“%d”,&a[i][j]); for(i=0;i<3;i++) for(j=0;j<2;j++) b[i][j]=a[j][i]; for(i=0;i<3;i++) { for(j=0;j<2;j++) printf(\5d\ printf(\n”); } return 0; } 12. 从键盘输入一个5行5列的矩阵,计算并输出其主对角线元素之和。 #include printf(“Enter data:\\n”); for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(“%d”,&a[i][j]); for(i=0;i<5;i++) for(j=0;j<5;j++) if(i==j) sum=sum+a[i][j]; printf(“sum=]\\n”,sum); } printf(\d,\
正在阅读:
C语言-第6章 利用数组处理批量数据03-30
2018-2019-学校灭鼠自查报告(精选多篇)-推荐word版(4页)05-12
2014河北政法干警考试文化综合冲刺:历史答题技巧07-23
实验1认识性实验06-22
苏教版 3 年级上册同步作文训练04-29
技术比武试题06-12
《母鸡》读后感03-16
文明使用共享单车作文400字06-28
18春兰大护理学导论课程作业 - B03-10
吉首大学数据库系统概论复习资料11-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数组
- 批量
- 利用
- 语言
- 处理
- 数据
- 2013届一轮复习基础强化训练 专题6 第2单元 原电池和常见的化学
- 中建史笔记汇总
- 智慧校园建设评价指标体系 - 图文
- 外研版八年级英语上册Module1-3检测题
- 2016届辽宁省沈阳市高考数学复习试卷(2)解析版
- 混凝土结构工程质量控制作业指导书
- 矿物加工工程专业认知实习 - 图文
- 江苏省徐州市2018-2019学年高二学业水平第二次模拟地理试题
- 泰州市优秀教育工作者表彰对象名单
- 会计基础综合题
- 校本研修
- 电梯品牌对比 - 图文
- 民法保护胎儿利益的理论基础
- 中考专题复习七:简单机械与功
- 生物精校版山西省运城市康杰中学2018届高考模拟(五)理科综合(
- 初一年语文入学摸底测试
- 2015年新版《中华人民共和国职业分类大典》
- 9.中频治疗仪产品技术要求
- 11、《秋天的雨》课前预习单
- 2018法考理论真题考点精解之法的运行