首页 理论教育 C语言数组内存占用和输出结果,填空题及字符串包含测试

C语言数组内存占用和输出结果,填空题及字符串包含测试

时间:2023-10-27 理论教育 版权反馈
【摘要】:A.int a[4]B.int a[4]={1,2,3,4,5};C.int a[4]={1,2,3}D.int a[4]={1};假设int型变量占4个字节的存储单元,若有定义:则数组x在内存中所占字节数为____。A.3B.4C.2D.1以下程序的输出结果是____。A.0650B.1470C.5430D.输出值不确定2.填空题若定义int a[10]={1,2,3};则a[3]的值是____。编制程序测试字符串str2是否整体包含在字符串str1中,若包含,则指明str2在str1中的起始位置。

C语言数组内存占用和输出结果,填空题及字符串包含测试

一、练习题

1.选择题

(1)下列一维数组的定义中,错误的是____。

A.int a[4] B.int a[4]={1,2,3,4,5};

C.int a[4]={1,2,3} D.int a[4]={1};

(2)假设int型变量占4个字节的存储单元,若有定义:

则数组x在内存中所占字节数为____。

A.6 B.12 C.20 D.40

(3)以下数组定义中,错误的是____。

A.int a[2][3] B.int b[][3]={0,1,2,3};

C.int c[100][100]={0} D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

(4)若已定义: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]

(5)以下能对二维数组x正确进行初始化的语句是____。

A.int x[2][]={{1,0,1},{5,2,3}} B.int x[][3]={{1,2,3},{4,5,6}};

C.int x[2][4]={{1,2,3},{4,5},{6}} D.int x[][]={{1,0,1},{ },{1,1}};

(6)若已定义:int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是____。

A.2 B.3 C.4 D.不确定

(7)给出以下定义:

则正确的叙述为____。

A.数组x和数组y等价

B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

(8)下列字符赋值或赋初值的方式中,不正确的是____。

A.char str[]="string" B.char str[7]={'s','t','r','i','n','g'};

C.char str[10];str="string" D.char str[7]={'s','t','r','i','n','g','\0'};

(9)若已定义int x[ ][4]={2,4,6,8,1,3,7,9,5};,数组x的第一维的长度是____。

A.3 B.4 C.2 D.1

(10)以下程序的输出结果是____。

A.0650 B.1470 C.5430 D.输出值不确定

2.填空题

(1)若定义int a[10]={1,2,3};则a[3]的值是____。

(2)在C语言中,二维数组各个元素在内存中的存放顺序是____。

(3)若定义int a[2][3]={{2},{3}};则值为3的数组元素是_____。

(4)若定义char string[]="This is a book!";则该数组的长度是____。

(5)#include<stdio.h>

程序的输出结果是____。

(6)下列程序的输出结果是____。

(7)判断字符串s1是否大于字符串s2,应使用的判断条件是____。

(8)若有定义语句:char s[100],d[100];int j=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝(注意:不得使用逗号表达式)。

(9)下面程序的功能是将一个字符串按逆序存放,请填空。

(10)下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。

3.程序改错题

(1)下列程序的功能是计算矩阵A的主对角线上的元素之和并输出。该程序有错误,请将程序修改正确(只能对有错误的行进行修改,不得修改正确的行,也不得删除或增加程序行)。

(2)下列程序的功能是统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,其他以此类推。用#号结束输入(函数isupper(c)用于判断c是否为大写字母)。

4.编程题

(1)随机产生10个1~100的正整数存入数组a,输出该数组各个元素,并求最大值、最小值和平均值。

提示:

①用srand()和100*(rand()+1)/32768产生1~100之间的随机数(参见例4-9)。

②以a[0]作为最大值、最小值及累加和的初始值,用数组和循环相结合求出数组的最大值、最小值和平均值。

(2)编制程序计算矩阵a[5][5]的周边元素之和。

(3)实行学分制,学生的平均绩点是衡量学生学习的重要依据。成绩等级与绩点的关系如下表所示。

编一程序利用两个一维数组分别输入某学生20门课程的学分和对应成绩,计算其平均绩点。

(4)编制程序将一个字符串按逆序存放。

(5)编制程序测试字符串str2是否整体包含在字符串str1中,若包含,则指明str2在str1中的起始位置。例如:str1="abcde",str2="cd",则str2包含在str1中,起始位置为3。

二、测试题

1.选择题

(1)合法的数组定义语句是()。

A.int a[4]={1,2,3,4,5} B.int a[3]={0},b[3]=a;

C.int a[4] D.int a[]={0};

(2)将字符串“hello”存放在一个字符数组中,正确的定义方式是()。

A.char s[5]="hello" B.char s[5]={'h','e','l','l','o'};

C.char s[10]="hello" D.char s[10];s="hello";

(3)若有以下语句,描述正确的是()。

A.数组s1和s2的长度相同 B.数组s1的长度大于s2的长度

C.数组s1的长度小于s2的长度 D.两个数组是等价的

(4)以下能对二维数组进行正确初始化的语句是()。(www.xing528.com)

A.int a[2][ ]={{1,2,3},{4,5,6}} B.int a[ ][ ]={{1,2,3},{4,5,6}};C.int a[ ][2]={{1,2,3},{4,5,6}} D.int a[ ][2]={1,2,3,4,5,6};

(5)若有数组定义:

则以下说法正确的是()。

A.字符串s的长度为7 B.字符串s的长度为8

C.字符数组s的大小为7 D.sizeof(s)和strlen(s)的值相等

(6)引用数组时,数组下标的数据类型为()。

A.整型常量 B.整型表达式

C.整型常量或整型表达式 D.任意类型表达式

(7)若有说明:int a[4]={1};则正确的叙述是()。

A.数组a中所有元素的值都为1 B.数组a首元素为1,其他元素值不确定

C.数组a中所有元素的值都为0 D.数组a首元素为1,其他元素值为0

(8)有以下语句:

输出结果为()。

A.2 2 B.2 3 C.7 3 D.2 6

(9)若有说明:int a[][3]={1,2,3,4,5,6,7}; 则数组a的行数为()。

A.2 B.3 C.4 D.不确定

(10)已知二维数组每行有m列,元素a[i][j]前共有多少个元素()。

A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1

(11)有以下语句段:

用户从键盘输入“Hello World!”,以下说明正确的是()。

A.产生越界错误 B.输出字符串“Hello Worl”

C.输出字符串“Hello World” D.输出字符串“Hello”

(12)判断两个字符串a和b相等,应使用()。

A.if(a==b) B.if(a=b)

C.if(strcmp(a,b)==0) D.if(strlen(a)==strlen(b))

(13)以下程序段的输出结果为()。

A.12 B.9 C.13 D.14

(14)以下程序段的输出结果为()。

A.LiNing B.ZhangShan

C.ZhangShan Lily D.Lily

(15)以下程序段的输出结果为()。

A.1,2,3,4,5,6,7,8,9,10 B.6,7,8,9,10,1,2,3,4,5

C.10 9 8 7 6 5 4 3 2 1 D.10,9,8,7,5,6,4,3,2,1

(16)有以下程序段:

输出结果为()。

A.45 B.42 C.56 D.60

(17)以下能正确定义二维数组的是()。

A.int a[][3] B.int a[][3]={3*3};

C.int a[][3]={} D.int a[2][3]={{1},{2,3},{0}};

(18)以下程序段的输出结果是()。

A.6 B.7 C.8 D.9

(19)若有以下程序段:

该程序段的功能是()。

A.对数组a进行插入排序(升序)

B.对数组a进行选择排序(升序)

C.对数组a进行插入排序(降序)

D.对数组a进行选择排序(降序)

(20)以下程序段给数组所有元素输入数据:

应在下划线处填入的是()。

A.&a[i++] B.&a[i+1] C.a+i D.&a[++i]

2.填空题

(1)执行以下程序且输入是“abc”时,输出的结果是()。

(2)以下的程序的输出结果是()。

(3)以下程序在数组a中查找某个数。请补全程序:

(4)以下程序将两个已按升序排列的数组合并成一个升序数组。请补全程序:

(5)以下程序在一个字符数组中查找一个指定的字符,若找到该字符,则输出该字符在数组中首次出现的位置下标;否则输出-1。请补全程序:

(6)下面程序的运行结果是()。

(7)下面的程序统计从键盘输入的字符中的大写字母个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,依此类推,用#结束输入。请补全程序:

(8)阅读下面程序并写出运行结果为()。

(9)以下程序的功能是将字符串s中下标值为偶数的元素从小到大排序,其他元素保持不变。请补全程序:

(10)假设当年的年产值为100,当产值的增长率分别为6%、8%、10%、12%时,求产值分别经过多少年可实现翻番。请补全程序:

3.编程题

(1)编写程序,找出数组元素中的最小值。为了增强程序的通用性,数组元素的值由键盘输入。

(2)编写程序,求一维数组元素的平均值和与平均值之差绝对值最小的元素。

(3)编写程序,求出3~100之间的所有素数

(4)编写程序,对输入的一行字符,统计其中有多少个单词,单词之间用空格隔开。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈