下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言(数组)一、选择题1 .设有程序:main() int i,a11;printf("给数组赋值:n");for (i=0; i<=10; i+)scanf("%d",();.printf("输出数组:n");for(i=0 ; i<=10 ; i+ )printf("%d,",();则在程序中的两个园括号中分别应填入:CA) &ai和 &aiB) ai和 &aiC) &ai和 aiD) ai和 ai2 .设已定义:int a15; 则数组a占用的内存单元数是(C )
2、.A) 15 B) 16 C) 30 D) 323 .阅读程序:main() int a2=0,i,j,k=2;for(i=0;i<k;i+)for(j=0;j<k;j+) aj=ai+1;printf("%dn",ak);以上程序的输出结果是(D ).A) 1 B) 3 C) 2 D)不确定的值4.阅读程序:f(int b口,int n) int i,r=1;for(i=0;i<=n;i+) r=r*bi;return r;main() int x,a口,2,3,4,5,6,7,8,9;x=f(a,3);printf("%dn",x)
3、;以上程序的输出结果是(D ).A) 720 B) 6C)24 D) 1205 .以下定义语句中,错误的是(B ).A) int a = 6,7,8;B) int n=5, an;C) char a = "string"D) char a5 ='0','1','2','3','4'6 .以下描述中正确的是(D ).A)数组名后面的常量表达式用一对圆括弧括起来B)数组下标从1开始C)数组下标的数据类型可以是整型或实型D)数组名的规定与变量名相同7 .若定义数组并初始化char a10='0
4、','1 ','2','3','4','5','6','7','8','9'指出以下错误语句(AB ).A) scanf("%c",a0);B) scanf("%s",&a);C) printf("%c",a3);D) printf("%s",a);8 .若定义数组int a10,其最后一个数组元素为(C ).A) aB) a1C) a9D) a109 .若
5、定义数组并初始化int a10= 1,2,3,4, 以下语句哪一个不成立(B )?A) a8的值为0B) a1的值为1C) a3的值为4D) a9的值为010 .指出以下错误语句(A ).A) int n=10,an;B) int n,a10;C) int a10=1,2,3;D) int a10=1,2,3,4,5,6,7,8,9,10;11 .请读程序:main()int n2,i,j,k;for(i=0;i<2;i+) ni=0;k=2;for(i=0;i<k;i+)for(j=0;j<k;j+) nj=ni+1;printf("%dn",nk);上
6、面程序的输出结果是(A ).A)不确定的值B)3C)2D)112 .若有以下的定义和语句:int str12=1,2,3,4,5,6,7,8,9,10,11,12;char c='e',则数值为2的表达式是(C ).A)str'g'-c B)str2 C)str'd'-'c' D)str'd'-c13 .设有数组定义:int a5;则下列给数组元素赋值错误的是(B ).A) a3=93;B) scanf("%c",a3);C) a3=getchar();D) a3='a'+3;1
7、4 .以下数组定义中错误的是(D ).A) #define N 30int aN+30;B) #define N 30int aN;C) int a30;D) int aN;15 .在定义一个一维数组时,不能用来表示数组长度的是(D ).A)常量B)符号常量C)常量表达式D)已被赋值的变量则数组a在内存中16 .若float 型变量占用4个字节,有定义float a20=1.1,2.1,3.1;所占的字节数是(D ).A)12 B)20 C)40 D)8017 .设已定义:int x24=1,2,3,4,5,6,7,8;则元素 x11的正确初值是(A ).A) 6B)5C)7D)118 .设有
8、定义:int a3=1,2,3,4,5,6,7,8,9;则 a12的初值为(C ).A) 2B)4C)6D)819 .设有:int a45; 则数组a占用的内存字节数是(C ).A) 12B)24C)40D)2020 .以下数组定义中,不正确的是(B ).A) int b34;B) int c3 =1,2,1,2,3,4,5,6,7;C) int b200100=0;D) int c 3=1,2,3,4,5,6;21 .定义数组:int x23; 则数组x的维数是(2 ). A) 1 B) 2 C) 3 D) 622 .若定义数组并初始化int b23= 1,2,3,4,5,6,以下语句哪一个
9、成立(C )?A) 表达式b12的值为1B) 表达式b12的值为4C) 表达式b12的值为6D) 表达式b12的值为223.若定义数组并初始化 int a23=1,2,3,4,5,6; for(i=0;i<2;i+)for(j=0;j<3;j+) printf("%d",a皿);语句的结果是哪一个(C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624.若定义数组并初始化 int a23= 1,2, 3,4,5,6;以下语句哪一个不成立(B)?A) a数组中有6个元素B) a23 是a数组的最后一个元素的引用C) a数组中每个元素
10、都为整数D) a数组是整型数组25 .定义如下变量和数组: int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是(C ).for(i=0;i<3;i+) printf("%d",xi2-i);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9则数值为2的26 .如有以下定义:double s5=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14; 元素是(C ).A) s13 B) s03 C) s02 D) s1227 .以下程序的输出结果是(A ).main()int a33=1,2,3,4,
11、5,6,i,j,s=0;for(i=1;i<3;i+)for(j=0;j<=i;j+)s+=aij;printf("%d",s);A) 18 B) 19 C) 20 D) 2128 .若已有char b1050;则该二维字符数组在内存所占字节数为(D ).A) 10 B)50C)60D)50029 .设有:char a10;下列语句那个是正确的(D )?A) scanf("%s",a0);B) scanf("%s",&a);C) printf("%s",a0)D) printf("%s
12、",a)30 .阅读程序:main() char a10;int i;for(i=1;i<=5;i+)scanf("%c”,&ai);printf("%c",a0);设从键盘输入字符串:abcde,则程序的输出结果是(C ).A) a B)空格C)不确定 D)031 .合法的数组定义是(D ).A) int a = "string"B) int a5=0,1,2,3,4,5;C) char a= "string"D) char a ='0','1','2'
13、;,'3'32 .设有数组定义:char string ="China"A) 5个字节B) 6个字节C) 7个字节D) 10个字节;则数组string所占的空间为(B ).33 .定义字符数组 c: char c ="c language"A) 9 B) 10 C) 11 D) 12;数组c在内存中所占字节数是(C ).34 .指出以下错误语句(C ).A) char a10='0','1','2','3','4','5','6'
14、;,'7','8','9'B) char a10='0','1 ','2','3'C) char a2= "1","2"D) char a2= 'a' ,'b ' ;35 .若定义数组并初始化char a10="hello",该数组的元素个数是(A ).A) 10B) 5C) 6D) 736.若定义数组并初始化 char a10="HELLO",该数组的元素中a2是(A )
15、.A) 'L'B) 'E'C) 'H'D) 'O'37.若定义数组并初始化int b10= 1,2,3,4,以下哪几个语句成立(A C D) ?A) b8的值为0B) b1的值为1C) b3的值为整数D) b10不是b数组中的元素 38.若定义数组int a10;指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a1,a2a10;B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a10;D) a数组第一个元素的引用方法是a1;、判断题1 .数组是数目固定的若干变量的有序集合,数组中
16、各元素的类型可以不同。错2 .数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。对3 .设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:int a=1,2,3,4,5;错4 .数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。对5c语言数组的下标从0开始,下标必须是整数型的常量或变量。对6 .数组是数目固定、类型相同的若干变量的有序集合。数组中的每一个数(变量)称为数组 元素,数组中的所有元素都属于同一种数据类型。对7 .数组元素下标的下界是固定的,总是为 00对8 .一维数组在引用时下标的
17、范围是:0 <二下标 < 数组的长度。对9 .若有数组定义为:int a100;则该数组的下界为0,上界为100。数组元素下标范围是: 下界 <二下标 < 上界。对10 .设已定义:double a55; 则数组 a 在内存中的存放顺序是:a00,a01,a02,,a43,a44。 对1 .在C语言中,二维数组的元素在内存中的存放顺序是按行的顺序依次存放 。2 .若有定义:double x35, 则x数组中行下标的下限为0 ,列下标的下限为0 °3 .若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12的值为 0, a21得到的值为6。4
18、 .字符串”的长度是 8。5 .下面程序段的运行结果是he。char x ="the teacher "int i=0;while (x+i!='0 ')if (xi-1='t') printf(%C,xi);6 .欲为字符串 S1 输入"Hello World! ”,其语句是scanf(%S',S1); 。7 .欲将字符串S1复制到字符串 S2中,其语句是strcpy(S2,S1); 。8 .如果在程序中调用了strcat函数,则需要预处理命令#include <string.h>。如果调用了 gets函数,则
19、需要预处理命令#include <stdio.h> 。9 .C语言数组的下标总是从 0 开始,不可以为负数;构成数组各个元素具有相同的数据类型。10 .字符串是以 0'为结束标志的一维字符数组。有定义:char a= " ;则a数组的长度是0。三.程序阅读题1 .写出下面程序的运行结果。main () int a66,i,j ;for (i=1; i<6 ; i+)for (j=1 ; j<6 ; j+) aij=(i/j)*(j/i);for (i=1;i<6 ; i+) for (j=1 ; j<6 ; j+)printf(%2d ,a
20、ij);printf( n ");运行结果:1 0 0 0 00 10 0 00 0 10 00 0 0 1 00 0 0 0 12 .写出下面程序的运行结果。main () int i=0;char a ="abM', b ="aqid ”, c10;while (ai!='0 ' && bi!='0 ') if (ai>=bi) ci=ai-32 ;else ci=bi-32 ;i+;ci= '0 'puts(c);运行结果:AQM3 .当运行下面程序时,从键盘上输入AabM,则写出
21、下面程序的运行结果。main () char s80;int i=0;gets(s);while (si!='0 ') if (si<='z' && si>='a')si= 'z'+'a'-si;i+; puts(s);运行结果:AzyD4 .写出下面程序的运行结果。main () int i,c;char s25=8980“,“9198”;for (i=3; i>=0 ; i-) c=s0i+s1i-2*'0's0i = c % 10 +0 'for (i
22、=0; i<=1; i+) puts(si);运行结果:198注:s数组中每个字符的 ASCII值为:7078574957565 .当运行下面程序时,从键盘上输入7 4 8 9 1 5/,则写出下面程序的运行结果。main () int a6,i,j,k,m;for (i=0 ; i<6 ; i+)scanf (%d ,&ai);for (i=5 ; i>=0; i-) k=a5;for (j=4; j>=0; j-)aj+1=aj;a0=k;for (m=0 ; m<6 ; m+)printf( %d ",am);printf( n "
23、;); Word资料运行结果:574157915891489748891489748574157915四.程序填空题1 .下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完整。main ()int a33=1,3,5,7,9,11,13,15,17, sum=0, i, j ;for (i=0 ; i<3 ; i+)for (j=0 ; j<3 ; j+) if (1i=j ) sum=sum+ aij;printf(Sum=%d,sum);2 .下面程序将十进制整数n转换成base进制,请填(3)空使程序完整。main () int i,base,n,j,num20
24、;scanf( %d',&n);scanf( %d',&base);do i+;numi=【n%base ; n=【n/base ; while (n!=0);for (1j=i;j>0;j-)printf( %d ”,numj);3 .下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。main () int a10,max,min,i,j,k ;for (i=0; i<10; i+) scanf( %d ,&ai);max=min=a0;for (i=0; i<
25、10; i+) if (ai<min) min=ai;j=i ; if (ai>max) max=ai; k=i ; max=aj;aj=ak;ak=max; for (i=0; i<10; i+)printf( %d ",ai);4 .下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串 中第一次出现的位置(下标值),否则输出一1,请填(2)空使程序完整。# include <string.h>main () char c='a'/* 需要查找的字符*/char t50;int i,j,k;gets
26、(t);i =strlen(t) ;for (k=0; k<i; k+)if (【tk=c) j = k ; break ;else j=-1;printf(%d ,j);5 .下面程序用顺序查找法”查找数组a中是否存在某一关键字,请填 (2)空使程序完整。main () int a10=25,57,48,371,123,291,18,22,44;int i=0,x ;scanf( %d',&x);a10=x ;while (ai!=x) i+ ;if (i<10 ) printf( found=%dn”,i);else printf( “'t found!
27、n ");6 .以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填(2)空使程序完整。main () char a40="Great ",b ="Wall”;int i=0,j=0 ;while (ai!='0 ') i+ ;while ( bj!='0' ) ai=bj ; i+ ; j+ ;ai尸0'printf( %sn”,a);五、编程题0元素统计字符1 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为“0”的个数,下标为1的元素统计字符“ 1”的个数,。#i
28、nclude <stdio.h>#define N 80 void main() char chsN; int i,count10; printf("Input a string:"); scanf("%s",chs);for(i=0;i<10;i+) counti=0;for(i=0;i<N;i+) countchsi-'0'+;for(i=0;i<10;i+)if(counti) printf("%d counts:%dn",i,counti); 2 编写程序求任意方阵每行、每列、两对
29、角线元素之和。#include <stdio.h>#define N 5#define M 5 void main() int aNM=3,4,7,8,9,6,8,2,1,3,8,5,4,3,2,7,6,9,1,5, 5,6,4,1,7; int s1N;/存放每行的和int s2M;/存放每列的和int sum1=0,sum2=0;/存放两对角线的和int i=0,j=0;for(i=0;i<N;i+) s1i=0;for(i=0;i<M;i+) s2i=0;for(i=0;i<N;i+)/计算每行的和for(j=0;j<M;j+)Word资料s1i+=a
30、皿;for(j=0;j<M;j+) 计算每列的和 for(i=0;i<N;i+) s2j+=a皿;for(i=0;i<N;i+)计算对角线的和 sum1+=aii;for(i=0;i<N;i+)/计算每行的和 sum2+=aiM-1-i;printf("每行和:"); for(i=0;i<N;i+) printf("%d ",s1i); printf("n每列和:");for(i=0;i<M;i+) printf("%d ",s2i); printf("n对角线和:”)
31、;printf("%d,%d ",sum1,sum2);3 编写程序求两个矩阵的和。#include <stdio.h>#define N 4#define M 5 void main() int aNM=3,4,7,8,9,6,8,2,1,3, 8,5,4,3,2, 7,6,9,1,5;int bNM=2,4,7,5,9,7,8,2,5,3, 9,5,4,3,2, 8,6,9,1,5;int cNM,i,j;for(i=0;i<N;i+) 计算矩阵的和 for(j=0;j<M;j+) c皿=aij+b皿;for(i=0;i<N;i+)for(
32、j=0;j<M;j+)printf("%d ",cij);printf("n");4 编写程序打印出以下形式的乘法九九表。* A MULTIPCATION TABLE *(2) (3) (4) (5) (6)(8) (9)(1) 1 2 3 4 5 6 7 8 9(2) 2 4 6 8 10 12 14 16 18(3) 3 6 9 12 15 18 21 24 27(4) 4 8 12 16 20 24 28 32 36(5) 51015202530354045(6) 61218243036424854(7)71421283542495664(8)81624324048566472(9)91827364554637281#include <stdio.h> void main()int i=0,j=0;printf(" * A MUL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理核心制度考核试题及答案
- 2025年河曲县数学三年级下学期期末综合测试模拟试题含解析
- 2025年河南省偃师市数学三年级第二学期期中复习检测试题含答案解析
- 妊娠期糖尿病护理查房
- 2025年沈阳市皇姑区四年级数学下学期期末检测试题(含答案解析)
- 小学新课改重点试题与答案解析
- 2025-2026年浙江省部编版高中英语阅读理解强化备考习题集
- DB22-T 3527.8-2026菜豆地方品种资源 第8部分:一棵松
- 慢性肾功能衰竭的护理
- 组织文化的试题及答案解析版
- CJ/T 340-2016绿化种植土壤
- 设备有偿使用协议书
- T/CECS 10263-2023负氧离子发生纳米矿物粉
- 一年级劳动教育课程计划
- 放射卫生与安全防护专题培训
- 解剖学基础及人体正常结构教案
- 电镀车间安全培训资料
- HG∕T 4600-2014 化工装置用高温高压套管热电偶
- 2024年设备监理师之质量投资进度控制题库及答案【各地真题】
- 新闻标题的翻译与技巧课件
- 了解月经周期与女性乳腺健康的关系
评论
0/150
提交评论