苏可怒亢库匠莆堆韶沤皆腾赣
第一讲:绪论与程序初步 第一讲:绪论与程序初步–客观题
1、 算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特点,其中错误的是:____
A:无穷性
B:确定性
C:有效性
D:0个或多个输入及一个或多个输出
答案: 无穷性
2、 描述算法有各种多样的方法,下述错误的是:__
A:设计图
B:NS图
C: PAD图
D:流程图
答案: 设计图
3、 下面C语言中不正确的数据类型关键字是 __。
A:signed
B:int
C:double
D:char
答案: signed
4、 不是C分隔符的是 __。
A:!
B:#
C:;
D:,
答案: !
5、 算法由某些基本成分组成,这些基本成分是一些基本的操作和控制结构。以下不属于基本控制结构的是:____。
A:多文件结构
B:顺序控制结构
C:循环控制结构
D:分支控制结构
答案: 多文件结构
6、 如下错误的表达为:__。
A: 任何C程序必须包含至少一个主函数main
B:一个C程序由一个或若干个编译单元组成,每个编译单元是一个源程序文件
C:一个编译单元由若干顶层声明组成,每个顶层声明是一个声明或函数定义,其中主要为函数定义
D:声明包括类型定义、变量声明、宏、… 等
答案: 任何C程序必须包含至少一个主函数main
7、 一般编写并执行C程序的过程,第一步应该是__。
A:使用文本编辑程序,录入源程序,保存文件
B:使用连接程序进行连接,把.obj文件以及需要的库函数连接到一起,成为一个程序,生成可执行的机器语言程序
C:使用C 编译程序编译C源程序文件,生成目标代码程序文件.obj
D:执行程序,得到运行结果
答案: 使用文本编辑程序,录入源程序,保存文件
8、 C语言可执行程序从哪里开始执行__。
A:程序中唯一的main函数
B:程序中的第一个函数
C:程序中第一条可执行语句
D:第一个包含文件的第一个函数
答案: 程序中唯一的main函数
9、 不是C关键字的是 __。
A:define
B:sizeof
C: if
D:double
答案: define
10、 不是C运算符的是 __。
A:#
B:++
C:+=
D:==
答案: #
11、 有效算法不应该具有的特性是_____。
A:有穷性
B:冗余性
C:确定性
D:确定性
答案: 冗余性
12、 哪种语言是计算机能够读懂的语言?
A:汇编语言
B:机器语言
C:高级语言
D:自然语言
答案: 机器语言
13、 与PAD图相比,NS图和流程图更开放、更易修改。
A:正确
B:错误
答案: 错误
14、 C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。
A:正确
B:错误
答案: 错误
作业第一讲:绪论与程序初步 第一讲:绪论与程序初步–编程题
1、 Hello World
建议:本题是主观题,暂无解析
2、 “鸡兔同笼”问题
建议:本题是主观题,暂无解析
第二讲:顺序程序设计 第二讲:顺序程序设计–客观题
1、 现声明float y,由键盘输入:3.1416,正确的数据输入语句是:__。
A:scanf(“%f”,&y);
B:scanf(“%s”,&y);
C:scanf(“%d”,y);
D:scanf(“%f”,y);
答案: scanf(“%f”,&y);
2、 C语言中的简单数据类型包括:__。
A:整数类型、浮点类型、字符类型
B:浮点类型、整数类型、字符类型、逻辑类型
C:逻辑类型、整数类型、字符类型
D:整数类型、逻辑类型、浮点类型
答案: 整数类型、浮点类型、字符类型
3、 C语言程序中,表达式5%2的结果是 __。
A:1
B:2
C:5
D:2.5
答案: 1
4、 语句char ch=’\65′, 则变量ch __。
A:值为1个字符
B:值为2个字符
C:值为空
D:值为3个字符
答案: 值为1个字符
5、 设x为整型变量,如果要表示数学关系20<x<25,错误的C语言表达式是 __。
A:20<x<25
B:!(x<=20)&&!(x>=25)
C: x==21||x==22||x==23||x==24
D:x>20&&x<25
答案: 20<x<25
6、 设变量A是int 型,B是float型,则表达式A+’q’+B结果的 数据类型是__。
A:float
B:char
C:无法确定
D:int
答案: float
7、 下列标识符中不合法的是_ 。
A:2Dim
B: Name
C: Li_Stone
D:DQ
答案: 2Dim
8、 执行如下语句后,x的值和输出结果分别是 __。int x=11; printf(“%d”, x+2);
A:11 13
B:11 11
C:12 12
D:12 13
答案: 11 13
9、 如果要表示逻辑关系 “ x≥11或x≤2 ”,下面正确的C语言表达式是
__。
A:x>=11 || x<=2
B:x>=11 && x<=2
C:x>=2 | x<=11
D:x>=11 and x<=2
答案: x>=11 || x<=2
10、 下列转义字符不正确的是:____。
A:’\9999′
B:’\’
C: ‘\”
D: ‘\0’
答案: ‘\9999’
11、 下面哪个是非法的C语言标识符?
A:-ab
B:_ab
C:a_b
D:ab12
答案: -ab
12、 假设整型变量A、B和C的值分别是3、6和9,请问在执行完如下程序片段后,A的值是多少? C=B; B=A; A=C;
A:6
B:9
C:0
D:3
答案: 6
13、 C语言提供的标准输入输出库函数头文件名字是_。
A:stdio.h
B:string.h
C:math.h
D:limits.h
答案: stdio.h
14、 6 /4和6.0/ 4结果相同。
A:正确
B:错误
答案: 错误
15、 注释会参与到程序实际执行过程,并起到关键作用。
A:正确
B:错误
答案: 错误
16、 字符有两种形态:可视性态和存储形态。
A:正确
B:错误
答案: 正确
17、 17,904 是合法的整数字面常量。
A:正确
B:错误
答案: 错误
18、 假设有“#define pai 3.14;” 此时常量标识符pai 代表实数“3.14”。
A:正确
B:错误
答案: 错误
19、 复合语句是多条简单语句的集合,并依次执行,即复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。
A:正确
B:错误
答案: 正确
20、 C语言中用表达式“a*b”表示a与b相乘。
A:正确
B:错误
答案: 正确
21、 假设有int v; 则使用语句scanf(“%d”, v);可以从键盘读取整型变量v的值。
A:正确
B:错误
答案: 错误
作业第二讲:顺序程序设计 第二讲:顺序程序设计–编程题
1、 给定字符的前驱、本身和后继字符
建议:本题是主观题,暂无解析
2、 求平均值
建议:本题是主观题,暂无解析
3、 点到平面距离
建议:本题是主观题,暂无解析
4、 重量转换
建议:本题是主观题,暂无解析
作业第三讲:分支和循环初步 第三讲:分支和循环初步–编程题
1、 输出成绩等级
建议:本题是主观题,暂无解析
2、 回文数字
建议:本题是主观题,暂无解析
3、 时间值是否合法
建议:本题是主观题,暂无解析
4、 输出指定月份的天数
建议:本题是主观题,暂无解析
5、 判断日期是否合法
建议:本题是主观题,暂无解析
第三讲:分支和循环初步 第三讲:分支和循环初步–客观题
1、 以下程序的运行结果是:int main(void){
int x=1,y=0,a=0,b=0;
switch(x){
case 1:switch(y){
case 0:a++; break;
case 1:b++; break;
}
case 2:a++; b++; break;
case 3:a++; b++;
}
printf(“%d %d”, a, b);
return 0;
}
A:2 1
B:1 0
C:2 2
D:3 2
答案: 2 1
2、 若变量已正确定义,在if (S) printf (“%d”,n);中,以下不可以替代S的是:
A: a<>b+c
B:ch=getchar()
C:a==b+c
D:a++
答案: a<>b+c
3、 阅读下述程序段,设变量c的值是68,写出运行结果。(提示小写字母a的ASCII码是97, 大写字母A的ASCII码是65)char c;
if ( c>=‘A’ && c<=‘Z’)
printf (“%c”,c+32);
else
printf (“%d”,c);
A:d
B:100
C:D
D:68
答案: d
4、 如有定义语句int a,b; double x; 则下列选项中没有错误的是______.提示:(int)x 表示将变量x的值强制转换成int类型。若x初始值为3.2则 (int)x的结果是int类型,值为3.
A: switch((int)x%2 ){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
B:switch(x%2){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
C:switch((int)x%2.0){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
D:switch(x%2){
case 0: a++; break;
case 1.0: b++; break;
default: a++; b++;
}
答案: switch((int)x%2 ){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
5、 下面程序的运行结果是:#include <stdio.h>
int main(void){
int a=1, b=2, c=3 ;
if ( a==1 && b==2)
if (b !=2 || c!=3)
printf ( “%d,%d,%d”,a,b,c);
else
printf ( “%d,%d,%d”,a,b,c);
else
printf ( “%d,%d,%d”,a,b,c);
return 1;
}
A:1,2,3
B:1,3,2
C:1.3.3
D:3,2,1
答案: 1,2,3
6、 如下程序段的功能是判断一个4位自然数个位和十位数字是否相同,在划线处填写表达式。int num;
scanf (“%d”,&num);
if (num>=1000 && num<10000)
if (__)
printf ( “该4位自然数个位和十位数字相同”);
else
printf ( “该4位自然数个位和十位数字不同”);
A:num%10 ==num/10%10
B:num/10%10==num/100%10
C:num/100%10==num%10
D:num/1000==num%10
答案: num%10 ==num/10%10
7、 判断一个自然数是否为4位且是5的倍数,下述语句不正确的是:
A:if(n< =1000 || n>10000)
if(n%5==0)
printf(“YES”);
else
printf(“NO”);
B:if (n > =1000 && n<10000 && n%5==0)
printf(“YES”);
else
printf(“NO”);
C:if(n%5==0)
if (n > =1000 && n<10000 )
printf(“YES”);
else
printf(“NO”);
D:if (n > =1000 && n<10000 )
if(n%5==0)
printf(“YES”);
else
printf(“NO”);
答案: if(n< =1000 || n>10000)
if(n%5==0)
printf(“YES”);
else
printf(“NO”);
8、 下面程序段实现把3或5的倍数输出,在划线处填上正确的表达式 int x;
scanf (“%d”,&x);
if (_______)
printf (“%d”,x);
A:x%3==0 || x%5==0
B:x%3!=0 && x%5!=0
C:x%15
D:x%3==0 && x%5==0
答案: x%3==0 || x%5==0
9、 下述程序的运行结果是:int main(void){
int a=1,b=0;
if (!a )
b++;
else
if ( a==0 )
if ( a )
b+=2;
else
b+=3;
printf(“b=%d”,b);
return 0;
}
A:b=0
B:b=1
C:b=2
D:b=3
答案: b=0
10、 阅读下面程序段,s 的值是:int a=1, b=2 c=6,s ;
if ( a<=b || c<0 || b<c)
s=b+c;
else
s=a+b+c;
A:8
B:9
C:10
D:11
答案: 8
11、 下列程序正确的输出是:____。int x=20;
if(x>0) printf(“0”);
if(x>10) printf(“10”);
if(x>20) printf(“20”);
A:010
B:0
C:10
D:20
答案: 010
12、 switch(条件语句 ) 中的条件语句不能填入以下哪种数据类型?
A:字符串类型
B:字符类型
C:bool
D:int
答案: 字符串类型
13、 以下选项中,两个条件语句语义等价的是____。
A:if(a-2)printf(“%d”,a);
if(a!=2)printf(“%d”,a);
B:if(a=2)printf(“%d”,a);
if(a==2)printf(“%d”,a);
C:if(a)printf(“%d”,a);
if(a!=2)printf(“%d”,a);
D:if(a-2)printf(“%d”,a);
if(a==2)printf(“%d”,a);
答案: if(a-2)printf(“%d”,a);
if(a!=2)printf(“%d”,a);
14、 下面程序输出结果是____。int main(void){
int a = 0 , b = 1, c = 0 ,d = 20 , x =100;
if(a)
x = d-10;
else
if(!b)
if(!c)
x = 15;
else
x = 20;
printf(“%d”, x);
return 0;
A:100
B:15
C:25
D:20
答案: 100
15、 若执行下面的程序从键盘上输入5,则输出结果是____。int main(void){
int x;
scanf(“%d”,&x);
if(x++>5)
printf(“%d”,x);
else
printf(“%d”,x –);
return 0;
}
A:6
B:7
C:5
D:4
答案: 6
16、 如下语句中有一个功能与其他不同,请指出是哪一个?
A:if(a<b) s=a-b; else s=b-a;
B: if(a>b) s=a-b; else s=b-a;
C:if(a-b>0) s=a-b; else s=b-a;
D:if(a>b) s=a-b; if(a<=b) s=b-a;
答案: if(a<b) s=a-b; else s=b-a;
17、 多分支switch语句(难度:低) switch ( e ){ case c1: 语句; break; ……….. case ci: 语句; break; ……….. default:语句 }中描述正确的是:____
A: e是任意合法的表达式
B:break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
C:switch语句执行结果和case ci的书写顺序有关
D:常量表达式必须是整数
答案: break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
18、 如下哪个逻辑表达式为真时,能正确表示x是3,5,7 的公倍数。
A: (x%3==0)||(x%5==0)||(x%7==0)
B: (x%3==0)&&(x%5==0)||(x%7==0)
C:(x%3==0)||(x%5==0)&&(x%7==0)
D:(x%3==0)&&(x%5==0)&&(x%7==0)
答案: (x%3==0)&&(x%5==0)&&(x%7==0)
作业第四讲:循环进阶 第四讲:循环进阶–编程题
1、 勒让德多项式
建议:本题是主观题,暂无解析
2、 计算序列和
建议:本题是主观题,暂无解析
3、 判断给定自然数是否为降序数
建议:本题是主观题,暂无解析
4、 计算n个正整数的最小公倍数
建议:本题是主观题,暂无解析
5、 爱因斯坦阶梯问题
建议:本题是主观题,暂无解析
作业第四讲:循环进阶 第四讲:循环进阶–编程题–拓展篇(不计入成绩)
1、 连续数字序列
建议:本题是主观题,暂无解析
2、 求参加竞赛人数
建议:本题是主观题,暂无解析
第四讲:循环进阶 第四讲:循环进阶–客观题
1、 for(i=1;i<10;i++);结束后,i的值是:
A:10
B:9
C:11
D:12
答案: 10
2、 下面程序的输出结果是_____.int main(void){
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%d”,s);
return 0;
}
A:10
B:1
C:9
D:15
答案: 10
3、 下面有关for循环的正确描述是:
A:for循环的循环体可以包含多条语句,但必须用花括号括起来。
B:for循环只能用于循环次数已经确定的情况
C:for循环是先执行循环体语句,后判断表达式。
D:在for循环中,不能用break语句跳出循环体。
答案: for循环的循环体可以包含多条语句,但必须用花括号括起来。
4、 以下叙述正确的是:
A:用do—while语句构成的循环,在while后的表达式为零时结束循环。
B:do—while语句构成的循环不能用其他语句构成的循环来代替。
C:do—while语句构成的循环只能用break语句退出。
D:用do—while语句构成的循环,在while 后的表达式为非零时结束循环。
答案: 用do—while语句构成的循环,在while后的表达式为零时结束循环。
5、 若k为整型变量,则下面while循环执行的次数为:k=10;
while(k>=5) k=k-1;
A:6次
B:4次
C:5次
D:7次
答案: 6次
6、 若k为整型,以下while循环执行___次.k=2;
while(k=0)
printf(“%d”,k),k–;
printf(“”);
A:0次
B:1次
C:2次
D:无限次
答案: 0次
7、 要使下面程序输出10个整数,则在横线处填入正确的数是:for(i=0;i<= ______
printf(“%d”,i+=2);
A:18
B:9
C:10
D:20
答案: 18
8、 下面程序的输出结果是____.int main(void){
int i,j;
for(i=0;i<10;i++)
for(j=0;j<3;j++)
i=i+j;
printf(“%d”,i);
return 0;
}
A:12
B:9
C:15
D:18
答案: 12
9、 以下关于for循环的描述,正确的是 __。
A:for循环只能用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判定表达式
C:在for循环中,不能用return语句终止循环执行
D:for循环体语句中,可以包含多条语句
答案: for循环体语句中,可以包含多条语句
10、 下面程序执行结果正确的是 __。#include <stdio.h>{
int main(void){
int n=0;
while (n<=2)
printf(“%d”,n++);
return 0;
}
A:23
B:123
C:012
D:12
答案: 012
11、 下面程序段中循环体语句执行次数是 __。for (int i=5;i;i–)
for (int j=0;j<4;j++){
…
}
A:20
B:24
C:6
D:5
答案: 20
12、 下面程序的输出结果是 __。#include <stdio.h>
int main(void){
int i=1,j,m=0;
for (;i<=5;i+=4)
for (j=3;j<=19;j+=4)
m++;
printf(“%d”,m);
return 0;
}
A:10
B:15
C:20
D:25
答案: 10
13、 下面程序的运行结果是 __。#include <stdio.h>
int main(void){
int x=1;
while (x<20)
x=1+1/x;
printf(“%d”,x);
return 0;
}
A:20
B:1
C: 程序有错,不能运行
D:死循环
答案: 死循环
14、 下面程序段判断x是否为素数。则空格处应该填写的语句分别为 _。scanf(“%d”,&x);
y=(int)sqrt(x);
for (int j=2; j<=y; j++)
if (_)
_;
if (j<=x)
printf(“是素数”);
else
printf(“不是素数”);
A: x/j==0, return;
B:y%j==0, break;
C: y/j==0, break.
D:x%j==0, j=x+1;
答案: x%j==0, j=x+1;
15、 下面程序的输出结果是 __。#include <stdio.h>
int main(void){
int i,j,x=0;
for (i=0;i<2;i++){
x++;
for (j=1;j<=3;j++{
if (j%2)
continue;
x++;
}
x++;
}
printf(“%d”,x);
return 0;
}
A:8
B:10
C:6
D:4
答案: 6
16、 以下描述正确的是__。
A:使用while和for循环时,循环变量初始化的操作应该在循环体语句之前完成
B:while循环是先判断表达式,后执行循环体;
C:do-while和for语句都是先执行循环体,后判断表达式;
D:for,while和do-while语句中的循环体均可以是空语句。
答案: 使用while和for循环时,循环变量初始化的操作应该在循环体语句之前完成;
while循环是先判断表达式,后执行循环体;;
for,while和do-while语句中的循环体均可以是空语句。
17、 针对下面程序段,说法正确的是__。for (t=1;t<=100;t++){
scanf(“%d”,&x);
if (x<0) break;
else printf(“%d”,x);
}
A: x>=0时什么也不输出
B:最多允许输出100个整数
C:当x<0时,整个循环结束
D:输出的都是非负整数
答案: 最多允许输出100个整数;
当x<0时,整个循环结束;
输出的都是非负整数
18、 以下循环语句中,不构成死循环的是__。
A:int i;
scanf(“%d”,&i);
while (1){
i=i%100+1;
if (i>100) break;
}
B:for (;1;;);
C:int k=1000;
do{;}while (k++<10000);
D:int s=36;
while (s)
–s;
答案: int k=1000;
do{;}while (k++<10000);;
int s=36;
while (s)
–s;
19、 对于以下程序段,描述正确的是__。int t=0;
while(t=1);
A:循环控制表达式不合法
B:循环控制表达式的值为1
C:死循环
D:以上描述都正确
答案: 循环控制表达式的值为1;
死循环
第五讲:函数和数组初步 第五讲:函数和数组初步–客观题
1、 在定义int a[5][5];后,数组a中的第10个元素是__。(设a[0][0]为第一个元素)
A: a[1][4]
B:a[2][5]
C:a[2][4]
D: a[1][5]
答案: a[1][4]
2、 在定义一个C语言函数时,如果不加类型说明,则它的类型默认为_____。
A: int 型
B:float型
C:char型
D:double型
答案: int 型
3、 有函数定义:int f(int x,int y);则下列函数调用正确的为_____。
A:int n=1,a=0,b=1;n=f(a,n);
B:int n, a=0,b=1;n=f(int a, int b);
C:int n,a=0,b=1;n=int f(x,y);
D:int n;n=f();
答案: int n=1,a=0,b=1;n=f(a,n);
4、 一个C语言程序必须有的一个函数是_____。
A:main函数
B:子函数
C:被调函数
D:主调函数
答案: main函数
5、 下面关于返回类型是void的函数说法正确的是_____.
A:如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。
B:函数仅可以通过return 语句返回。
C:函数的返回值是0。
D:如果使用return语句返回,则 return 后面必须有一个整型表达式。
答案: 如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。
6、 关于C语言中的数组说法错误的是:_____.
A:数组中元素的下标是从1开始的。
B:数组中的所有元素都是同一个类型。
C:对数组的操作必须通过对数组内元素的操作实现。
D:数组声明时,“[ ]”里面的内容说明数组长度,且必须是一个常量表达式。
答案: 数组中元素的下标是从1开始的。
7、 下列程序执行后的输出结果是:__。#include <stdio.h>
int main(void) {
int a,b[5];
a=1; b[0]=4;
printf(“%d,%d”,b[0],b[1]);
return 1;
}
A:4, 不定值
B: 0, 4
C:4 0
D:4 0
答案: 4, 不定值
8、 在划线处填写适当内容完成程序,本程序当输入字符是数字时输出字符串“number”,否则输出“none”#include<stdio.h>
int check_number(char x){
if ((x>=’0′)&&(x<=’9′))
return 1;
else
return 0;
}
int main(void){
char ch;
while(1){
scanf(“%c”,&ch);
if(ch==’#’) break;
if(____)
printf(“number”);
else
printf(“none”);
}
return 0;
}
A:check_number(ch)
B:check_number(ch+1)
C:check_number(!ch)
D:!check_number(ch)
答案: check_number(ch)
9、 在定义int a[5][4];之后,对a数组第2行第3列的元素的引用哪个是正确(假设a[0][0]是第一行第一列元素):__。
A:a[2][3]
B:a[1][3]
C:a[1][2]
D:a[2][2]
答案: a[1][2]
10、 在C语言中,调用一个函数可得到_____。
A: 最多一个返回值
B:最多两个返回值
C:最多三个返回值
D:任意多个返回值
答案: 最多一个返回值
11、 执行如下程序,从键盘依次输入十个整数:“1 0 0 0 1 2 3 0 2 0 0”,则输出时a[4]的值是______。#include<stdio.h>
int main(void){
int a[10];
int i,j;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<10;i++){
if(a[i]==0){
j=i;
while(j<10-1&&a[j]==0)
j++;
a[i]=a[j];
a[j]=0;
}
}
for(i=0;i<10;i++)
printf(“%d”,a[i]);
return 0;
}
A:0
B:1
C:2
D:3
答案: 2
12、 在C语言函数中,正确的说法是__。
A:必须有形参
B:形参必须是简单变量名
C:可以有也可以没有形参
D:数组名不能作形参
答案: 可以有也可以没有形参
13、 在C语言中,正确的说法是__。
A:函数的定义可以嵌套,但函数的调用不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数的调用均不可以嵌套
D: 函数的定义和函数的调用均可以嵌套
答案: 函数的定义不可以嵌套,但函数的调用可以嵌套
14、 C语言的函数名实际上是_____。
A:返回值存储单元
B:函数值存储单元
C:函数变量
D:函数的入口地址
答案: 函数的入口地址
15、 在定义C语言函数时,如果函数首部冠以关键字void,表示此函数_____。
A:无返回值
B:返回值可有可无
C:有任意多个返回值
D:有一个返回值
答案: 无返回值
16、 以下对二维数组a进行正确初始化的是__。
A:int a[][3]={3,2,1,4,5,8}
B:int a[][]={{3,2,1},{4,5,8)}
C:int a[][3]={{3,2,1},{4,5,8}}
D:int a[2][3]={{3,2,1},{4,5,8}}
答案: int a[][3]={3,2,1,4,5,8};
int a[][3]={{3,2,1},{4,5,8}};
int a[2][3]={{3,2,1},{4,5,8}}
17、 定义int a[2][3]={0,1,2,3,4,5};无法正常访问a数组数值0~5的下标表达式是__。
A:a[2][4]
B:a[5][0]
C:a[1][1]
D:a[0,0]
答案: a[2][4];
a[5][0];
a[0,0]
18、 以下错误的定义语句是__。
A:#define M 5;
int A[M];
B:int A[5,6];
C:int A[][3];
D:int A[10];
答案: #define M 5;
int A[M];;
int A[5,6];;
int A[][3];
19、 以下对字符数组word进行正确初始化的是__。
A:char word[]=“Computer\0”;
B:char word[]=“Computer”;
C:char word[]=‘Computer\0’;
D:char word[]={‘C’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’};
答案: char word[]=“Computer\0”;;
char word[]=“Computer”;;
char word[]={‘C’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’};
作业第五讲:函数和数组初步 第五讲:函数和数组初步–编程题
1、 组合问题
建议:本题是主观题,暂无解析
2、 逆序数
建议:本题是主观题,暂无解析
3、 转移0元素
建议:本题是主观题,暂无解析
4、 循环右移
建议:本题是主观题,暂无解析
作业第六讲:数组应用 第六讲:数组应用–编程题–拓展篇(不计入成绩)
1、 十进制数转换成其他进制数
建议:本题是主观题,暂无解析
2、 猴子选大王
建议:本题是主观题,暂无解析
第六讲:数组应用 第六讲:数组应用–客观题
1、 以下程序的输出结果是__。int main(void ){
int a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=1;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
s*=a[i][j];
printf(“%d”,s);
return 1;
}
A:840
B:2520
C:360
D:12600
答案: 840
2、 以下对有十个元素的一维数组a进行正确的初始化的是:
A:int a[10]={1,23};
B:int a[10]=(0,0,0,0,0);
C:int a[]={};
D:int a[]={0}
答案: int a[10]={1,23};
3、 有如下声明: int a[10]={0,1,2,3,4,5,6,7,8,9}; 则数值不是6的表达式是:___.
A:a[7]
B:a[10-4]
C:a[6]
D:a[9]-a[3]
答案: a[7]
4、 以下程序的输出结果是__。int main(void){
char a[5]={‘1′,’2′,’3′,’4′,’\0’};
puts(a);
return 1;
}
A:1234
B:12034
C:12340
D:2134
答案: 1234
5、 下面程序的输出是__。int main(void) {
int a[10]={1,2,3,4,5,6,7,8,9,10};
printf(“%d”,a[a[7]/a[1]]);
return 1;
}
A:5
B:2
C:3
D:4
答案: 5
6、 以下程序的输出结果是:___。int main( ){
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%5d”,x[1][i]);
return 1;
}
A:4 5 6
B:3 6 9
C:1 5 9
D:7 8 9
答案: 4 5 6
7、 字符串sx小于字符串sy的正确逻辑表达式是:___。
A:strcmp(sx, sy)<0
B:sx<sy
C:sx[0]<sy[0]
D:strlen(sx)<strlen(sy)
答案: strcmp(sx, sy)<0
8、 下面程序的功能是:___。#include <string.h>
int main(void) {
char a[ ]=”programming”,t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-1; i++)
for(j=i+1;j<k; j++)
if(a[i]<a[j]) {
t=a[i];
a[i]=a[j];
a[j]=t;
}
puts(a);
printf(“”);
return 1;
}
A:将字符数组a中的元素从大到小排序
B:将字符数组a中的元素从小到大排序
C:求字符数组a中的最大元素
D:求字符数组a中的最小元素
答案: 将字符数组a中的元素从大到小排序
9、 如下程序运行时,从键盘上输入由数字组成的字符串,该程序的功能是__。int main(void){
char ch[5];
int j;
int s=0;
printf(“Enter a numeral string”);
gets(ch);
for(j=0;ch[j]>’\0′;j++) s=10*s+ch[j]-‘0’;
printf(“%d”,s);
return 1;
}
A:将数字字符串ch转换成十进制数
B:求字符数组长度
C:将字符数组中的数字转换对应的字母
D:将字符数组中的大写字母转换成小写
答案: 将数字字符串ch转换成十进制数
10、 如下程序的功能是:_.int main(void){
char str[10]=”array”;
int i=0,j=0;
for(i=0;str[i]>’\0’;i++)
j++;
printf(“%d”,j);
return 1;
}
A:求字符数组长度
B:将数字字符串ch转换成十进制数
C:将字符数组中的数字转换对应的字母
D:将字符数组中的大写字母转换成小写
答案: 求字符数组长度
11、 划线处填写______,可以使函数fun实现矩阵转置的功能。#include<stdio.h>
define M 3
define N 3
void fun(int arr[M][N]) {//转置
int i,j;
for(i=0; i<M; i++)
for(j=0; j<N; j++){
if(i!=j&&i<j){
int tmp;
tmp=arr[i][j];
arr[i][j]=___;
arr[j][i]=tmp;
}
}
}
A:arr[j][i]
B:arr[i][i]
C:arr[j][j]
D:arr[i][j]
答案: arr[j][i]
12、 执行如下程序从键盘输入字符串“abcdefg”,则程序输出_______.#include<stdio.h>
include<string.h>
define SIZE 100
void strchange(char str[]){
int n=strlen(str);
if(n==0||n==1) return;
else {
int i,j;
for(i=0,j=n-1; i<=n/2-1; i++,j–){
char tmp;
tmp=str[i]; str[i]=str[j]; str[j]=tmp;
}
}
}
int main(void ){
char str[SIZE];
scanf(“%s”,str);
strchange(str);
printf(“%s”,str);
return 1;
}
A:gfedcba
B:abcdefg
C:badcefg
D:gefbca
答案: gfedcba
13、 执行如下程序,从键盘依次输入5个整数“5 4 6 7 3”;则输出时B[2]值是_. #include <stdio.h>
define L 5
int A[L],B[L];
void initial(){
printf(“Please input the array:”);
for(int i=0;i<L;i++){
scanf(“%d”,&A[i]);
B[i]=i;
}
}
void sort(){
int i,j,count=0;
for(i=0;i<L;i++){
count=0;
for(j=0;j<L;j++){
if((A[j]<A[i]&&i!=j)||(A[i]==A[j]&&i>j))
count++;
}
B[i]=count;
}
}
void print(){
int i;
printf(“Aarry A:”);
for(i=0;i<L;i++)
printf(“%d”,A[i]);
printf(“Array B:”);
for(i=0;i<L;i++)
printf(“%d”,B[i]);
}
int main(void){
initial();
sort();
print();
return 0;
}
A:3
B:4
C:2
D:1
答案: 3
14、 以下关于数组的描述正确的是__。
A:数组的大小是固定的,但可以有不同的类型的数组元素。
B:数组的大小是可变的,但所有数组元素的类型必须相同。
C:数组的大小是固定的,所有数组元素的类型必须相同。
D:数组的大小是可变的,可以有不同的类型的数组元素。
答案: 数组的大小是固定的,所有数组元素的类型必须相同。
15、 在C99之前的C标准中,以下一维数组的正确定义是__。
A:int a(10);
B:int n=10,a[n];
C:int n; scanf”(%d”,&n); int a[n];
D: #define SIZE 10 int a[SIZE];
答案: #define SIZE 10 int a[SIZE];
16、 在执行char str[10]=”China\0”; strlen(str)的结果是__。
A:5
B:6
C:7
D:9
答案: 5
17、 对语句int a[10]={3,4,5,6,7}的正确理解是__。
A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[5]至a[9]
D:因为数组长度与初值的个数不相同,所以此语句不正确
答案: 将5个初值依次赋给a[0]至a[4]
18、 在执行char str[10]=”China”; strlen(str)的结果是__。
A:5
B:6
C:7
D:9
答案: 6
19、 若二维数组a有m列,则在a[i][j]之前的元素个数为__。
A:im+j
B:im+i
C:im+j-1
D:im+i_1
答案: i*m+j
20、 下面程序段的运行结果是__。char a[7]=“abcdef”, b[5]=“ABCD”;
strcpy(a,b);
printf(“%c”, a[5]);
A:~
B:e
C:f
D:\0
答案: f
21、 C语言中字符串比较操作的库函数头文件是__。
A:stdio.h
B:math.h
C:string.h
D:time.h
答案: string.h
作业第六讲:数组应用 第六讲:数组应用–编程题
1、 矩阵重复元素检测
建议:本题是主观题,暂无解析
2、 索引数组排序
建议:本题是主观题,暂无解析
3、 统计学生成绩
建议:本题是主观题,暂无解析
4、 回文数
建议:本题是主观题,暂无解析
5、 逆序存放
建议:本题是主观题,暂无解析
如需购买完整答案,请点击下方红字:
为了方便下次阅读,建议在浏览器添加书签收藏本网页
添加书签方法:
1.电脑按键盘的Ctrl键+D键即可收藏本网页
2.手机浏览器可以添加书签收藏本网页
获取更多慕课答案,欢迎在浏览器访问我们的网站:http://mooc.mengmianren.com
注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://mooc.mengmianren.com/
我们的公众号
打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP
本公众号可查看各种网课答案,还可免费查看大学教材答案
点击这里,可查看公众号功能介绍
APP下载
APP功能说明
1.可查看各种网课答案
点击【萌面人官网】,可查看知到智慧树,超星尔雅学习通,学堂在线等网课答案
点击【中国大学慕课答案】,可查看mooc慕课答案
2.可一键领取淘宝/天猫/京东/拼多多无门槛优惠券
如图所示,点击对应图标即可领取淘宝/天猫/京东/拼多多无门槛优惠券
泥怂迁勃辰鞘荆蹦舌莽弧餐寞