(1)3有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2)
j+=p[i];
printf("%d\n",j);
}
13+15+17=45;
程序运行后的输出结果是_B____。
A)42 B)45 C)56
D)60
(2)3有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=1,j=1;
while(i++<7) if(p[i]%2)
j+=p[i];
printf("%d\n",j);
}
13+15+17+1=46;
程序运行后的输出结果是__46___。
A)42 B)46 C)56
D)60
(3)3有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=1;
while(i++<7) if(p[i]%2)
j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是___46__。
A)42 B)46 C)56
D)60
(4)3有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=1,j=0;
while(i++<7) if(p[i]%2)
j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是__45___。
A)42 B)45 C)56
D)60
(5)以下叙述中错误的是__C___。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
(6)3有以下程序
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}
11+13 ,当执行了p[2]=14.不满足条件,就终止循环了
执行后输出结果是___24__。
A)58 B)56 C)45
D)24
(7)3有以下程序
main()
{ int p[7]={11,13,14,15,16,17,18},i=1,k=1;
while(i<7&&p[i]%2)
{k=k+p[i];i++;}
printf("%d\n",k);
}
13 + 1
执行后输出结果是__14___。
A)58 B)56 C)45
D)14
(8)1假定int类型变量占用两个字节,其有定义:int
x[10]={0,2,4};,则数组x在内存中所占字节数是__20___。
A)3 B)6 C)10
D)20
(9)1假定float类型变量占用四个字节,其有定义:float
x[10]={0.5,2.5,2.4};,则数组x在内存中所占字节数是___40__。
A)3 B)6 C)10
D)40
(10)1假定int类型变量占用两个字节,其有定义:int
x[5]={0,2,4};,则数组x在内存中所占字节数是____10_。
A)3 B)6 C)10
D)20
(13)1以下程序的输出结果是_____。
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[1],a[3],a[5]);
}
A)258 B)741 C)852
D)975
(14)1以下程序的输出结果是_____。
main()
{ int i, a[10];(16)2当调用函数时,实参是一个数组名,则向函数传送的是___B__。
A)数组的长度 B)数组的首地址
C)数组每一个元素的地址 D)数组每个元素中的值
(19)2若有以下调用语句,则不正确的fun函数的首部是_D___。
A)void fun(int m, int x[])
B)void fun(int s, int h[41])
C)void fun(int p, int *s)
D)void fun(int n, int a)
main()
{ …
int a[50],n;
…
fun(n, &a[9]);
…
}
(20)3以下程序的输出结果是B_____。
//顺序执行
main()
{ 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",k);
}
A)20 B)21 C)22
D)23
21.设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有___B___个元素。
A、12 B、13
C、14 D、15
22.设变量定义为“int a[4];”,则表达式_D_____不符合C语言语法。(为何)
A、*a B、a[0]
C、a D、a++
(25)有以下程序
//编程
#include
main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)
c[s[i]]++;
for(i=1;i<5;i++)printf("%d",c[i]);
printf("\n");
}
程序的运行结果是(C)。
A)1 2 3 4 B)2 3 4 4
C)4 3 3 2 D)1 1 2 3
(26)若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是
( C)。
A)m[--i] B)m[2*2] C)m[m[0]]
D)m[m[i]]
(27)以下能正确定义一维数组的选项是(C )
A)int a[5]={0,1,2,3,4,5};
B)char a[]={0,1,2,3,4,5};
C)char a={'A','B','C'};
D)int a[5]="0123";
1.有m个人围成一圈,开始报数,报道n,退出,问最后剩下的是几号。(从1号开始)
比如:
输入:5 3
输出:
4
输入: 6 2
输出:
5
2. 输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限
比如:
输入:5 18
输出:
1 2 3 4 5
16 17 18 0 6
15 0 0 0 7
14 0 0 0 8
13 12 11 10 9
输入: 4 12
输出:
1 2 3 4
12 0 0 5
11 0 0 6
10 9 8 7
4..输入10个数,找出出现次数最多的数(如果多个并列,则按数字出现顺序分别输出)
比如:
输入:1 2 2 3 4 5 6 7 8 9
输出:2
数据结构:定义一个整型数组int count[10]存储每个元素的个数,开始时每个元素个数初始化为1
算法:
(1)利用双层循环,每一个元素都与后面一个元素比较,如果两者相同,则该元素次数+1,
(2)以上的算法中两个相同的元素的次数是一样的,优化如下,比较两个元素的时候,如果两者相等,则该元素次数+1,后面的元素次数设置为0,比较的时候再判断这个元素是否已经比较
伪代码:
定义数组保存每个元素次数
使用双层循环遍历数组
如果当前元素后后面元素相等,并且后面的元素次数不为0
当前元素次数+1,后面的元素次数设置为0
从保存每个元素次数的数组中查找最大的值
5.魔方阵是一个古老的智力问题,它要求在一个m*m的矩阵中填入1~m^2的数字(m为奇数),使得每一行、每一列、每条对角线的累加和都相等。请编程实现输入m,输出m*m的魔方阵出来。
比如:
输入:3
输出:
6 1 8
7 5 3
2 9 4
//(1)将1放在第一行中间一列;
//(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1/减1(例如上面的三阶魔方阵,5在4的上一行后一列);
//(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;
//(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;
//(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;
1.给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有3个。
2.给定某个字符数组,统计数组中所有英文字符和阿拉伯数字的个数,比如“123fdd”中有英文字符有 3个,数字3个。
3.给定某个拥有5个元素的字符数组,数组的成员都有阿拉伯字符构成,试着将该数组转换成一个整数,比如字符数组的内容是:{‘1’,’2’,’3’,’3’,’2’}则将被转换成12332。
4.给定一个完全由英文字符构成的数组,将数组中的小写字母转换成大写字母,大写字母转换成小写字母并输出。例如“abcGGG”转化为“ABCggg”。
5.给定一个完全由英文字符构成的数组,将数组中下标为偶数的字符都转换为大写(如果原来是大写则不变)。
6.给一个完全由英文字符构成的字符数组加密,加密原则如下,除了字符‘Z’和‘z’之外,每个字符变成 ASCII码值比它大 1的字符,也就是‘A’变成‘B’。‘Z’或者‘z’转化为‘A’或者‘a’。
###7.计算某个由英文、数字以及标点符号构成的数组的总宽度,其中英文字符的宽度为1cm,数字宽度为0.5cm、标点符号宽度为0.8cm。
8.接上题,如果规定行的宽度为10cm,将某个字符长度超过50的字符串截断,恰好
使10cm宽的行能容纳。输出这个被截断的子数组。
9.给定某个整型数组,计算该数组所有偶数的和。