高级语言程序设计(吉林大学) 中国大学mooc慕课答案2024版 m103243
第一讲:绪论与程序初步 第一讲:绪论与程序初步–客观题
1、 算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特点,其中错误的是:____
答案: 无穷性
2、 描述算法有各种多样的方法,下述错误的是:__
答案: 设计图
3、 下面C语言中不正确的数据类型关键字是 __。
答案: signed
4、 不是C分隔符的是 __。
答案: !
5、 算法由某些基本成分组成,这些基本成分是一些基本的操作和控制结构。以下不属于基本控制结构的是:____。
答案: 多文件结构
6、 如下错误的表达为:__。
答案: 任何C程序必须包含至少一个主函数main
7、 一般编写并执行C程序的过程,第一步应该是__。
答案: 使用文本编辑程序,录入源程序,保存文件
8、 C语言可执行程序从哪里开始执行__。
答案: 程序中唯一的main函数
9、 不是C关键字的是 __。
答案: define
10、 不是C运算符的是 __。
答案: #
11、 有效算法不应该具有的特性是_____。
答案: 冗余性
12、 哪种语言是计算机能够读懂的语言?
答案: 机器语言
13、 与PAD图相比,NS图和流程图更开放、更易修改。
答案: 错误
14、 C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。
答案: 错误
作业第一讲:绪论与程序初步 第一讲:绪论与程序初步–编程题
1、 Hello World
建议:本题是主观题,暂无解析
2、 “鸡兔同笼”问题
建议:本题是主观题,暂无解析
第二讲:顺序程序设计 第二讲:顺序程序设计–客观题
1、 现声明float y,由键盘输入:3.1416,正确的数据输入语句是:__。
答案: scanf(“%f”,&y);
2、 C语言中的简单数据类型包括:__。
答案: 整数类型、浮点类型、字符类型
3、 C语言程序中,表达式5%2的结果是 __。
答案: 1
4、 语句char ch=’\65′, 则变量ch __。
答案: 值为1个字符
5、 设x为整型变量,如果要表示数学关系20<x<25,错误的C语言表达式是 __。
答案: 20<x<25
6、 设变量A是int 型,B是float型,则表达式A+’q’+B结果的 数据类型是__。
答案: float
7、 下列标识符中不合法的是_ 。
答案: 2Dim
8、 执行如下语句后,x的值和输出结果分别是 __。int x=11; printf(“%d”, x+2);
答案: 11 13
9、 如果要表示逻辑关系 “ x≥11或x≤2 ”,下面正确的C语言表达式是 __。
答案: x>=11 || x<=2
10、 下列转义字符不正确的是:____。
答案: ‘\9999’
11、 下面哪个是非法的C语言标识符?
答案: -ab
12、 假设整型变量A、B和C的值分别是3、6和9,请问在执行完如下程序片段后,A的值是多少? C=B; B=A; A=C;
答案: 6
13、 C语言提供的标准输入输出库函数头文件名字是_。
答案: stdio.h
14、 6 /4和6.0/ 4结果相同。
答案: 错误
15、 注释会参与到程序实际执行过程,并起到关键作用。
答案: 错误
16、 字符有两种形态:可视性态和存储形态。
答案: 正确
17、 17,904 是合法的整数字面常量。
答案: 错误
18、 假设有“#define pai 3.14;” 此时常量标识符pai 代表实数“3.14”。
答案: 错误
19、 复合语句是多条简单语句的集合,并依次执行,即复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。
答案: 正确
20、 C语言中用表达式“a*b”表示a与b相乘。
答案: 正确
21、 假设有int v; 则使用语句scanf(“%d”, v);可以从键盘读取整型变量v的值。
答案: 错误
作业第二讲:顺序程序设计 第二讲:顺序程序设计–编程题
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;
}
答案: 2 1
2、 若变量已正确定义,在if (S) printf (“%d”,n);中,以下不可以替代S的是:
答案: 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);
答案: d
4、 如有定义语句int a,b; double x; 则下列选项中没有错误的是______.提示:(int)x 表示将变量x的值强制转换成int类型。若x初始值为3.2则 (int)x的结果是int类型,值为3.
答案: 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;
}
答案: 1,2,3
6、 如下程序段的功能是判断一个4位自然数个位和十位数字是否相同,在划线处填写表达式。int num;
scanf (“%d”,&num);
if (num>=1000 && num<10000)
if (__)
printf ( “该4位自然数个位和十位数字相同”);
else
printf ( “该4位自然数个位和十位数字不同”);
答案: num%10 ==num/10%10
7、 判断一个自然数是否为4位且是5的倍数,下述语句不正确的是:
答案: 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);
答案: 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;
}
答案: 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;
答案: 8
11、 下列程序正确的输出是:____。int x=20;
if(x>0) printf(“0”);
if(x>10) printf(“10”);
if(x>20) printf(“20”);
答案: 010
12、 switch(条件语句 ) 中的条件语句不能填入以下哪种数据类型?
答案: 字符串类型
13、 以下选项中,两个条件语句语义等价的是____。
答案: 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;
答案: 100
15、 若执行下面的程序从键盘上输入5,则输出结果是____。int main(void){
int x;
scanf(“%d”,&x);
if(x++>5)
printf(“%d”,x);
else
printf(“%d”,x –);
return 0;
}
答案: 6
16、 如下语句中有一个功能与其他不同,请指出是哪一个?
答案: if(a<b) s=a-b; else s=b-a;
17、 多分支switch语句(难度:低) switch ( e ){ case c1: 语句; break; ……….. case ci: 语句; break; ……….. default:语句 }中描述正确的是:____
答案: break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
18、 如下哪个逻辑表达式为真时,能正确表示x是3,5,7 的公倍数。
答案: (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的值是:
答案: 10
2、 下面程序的输出结果是_____.int main(void){
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%d”,s);
return 0;
}
答案: 10
3、 下面有关for循环的正确描述是:
答案: for循环的循环体可以包含多条语句,但必须用花括号括起来。
4、 以下叙述正确的是:
答案: 用do—while语句构成的循环,在while后的表达式为零时结束循环。
5、 若k为整型变量,则下面while循环执行的次数为:k=10;
while(k>=5) k=k-1;
答案: 6次
6、 若k为整型,以下while循环执行___次.k=2;
while(k=0)
printf(“%d”,k),k–;
printf(“”);
答案: 0次
7、 要使下面程序输出10个整数,则在横线处填入正确的数是:for(i=0;i<= ______
printf(“%d”,i+=2);
答案: 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;
}
答案: 12
9、 以下关于for循环的描述,正确的是 __。
答案: for循环体语句中,可以包含多条语句
10、 下面程序执行结果正确的是 __。#include <stdio.h>{
int main(void){
int n=0;
while (n<=2)
printf(“%d”,n++);
return 0;
}
答案: 012
11、 下面程序段中循环体语句执行次数是 __。for (int i=5;i;i–)
for (int j=0;j<4;j++){
…
}
答案: 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;
}
答案: 10
13、 下面程序的运行结果是 __。#include <stdio.h>
int main(void){
int x=1;
while (x<20)
x=1+1/x;
printf(“%d”,x);
return 0;
}
答案: 死循环
14、 下面程序段判断x是否为素数。则空格处应该填写的语句分别为 _。scanf(“%d”,&x);
y=(int)sqrt(x);
for (int j=2; j<=y; j++)
if (_)
_;
if (j<=x)
printf(“是素数”);
else
printf(“不是素数”);
答案: 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;
}
答案: 6
16、 以下描述正确的是__。
答案: 使用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);
}
答案: 最多允许输出100个整数;
当x<0时,整个循环结束;
输出的都是非负整数
18、 以下循环语句中,不构成死循环的是__。
答案: int k=1000;
do{;}while (k++<10000);;
int s=36;
while (s)
–s;
19、 对于以下程序段,描述正确的是__。int t=0;
while(t=1);
答案: 循环控制表达式的值为1;
死循环
第五讲:函数和数组初步 第五讲:函数和数组初步–客观题
1、 在定义int a[5][5];后,数组a中的第10个元素是__。(设a[0][0]为第一个元素)
答案: a[1][4]
2、 在定义一个C语言函数时,如果不加类型说明,则它的类型默认为_____。
答案: int 型
3、 有函数定义:int f(int x,int y);则下列函数调用正确的为_____。
答案: int n=1,a=0,b=1;n=f(a,n);
4、 一个C语言程序必须有的一个函数是_____。
答案: main函数
5、 下面关于返回类型是void的函数说法正确的是_____.
答案: 如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。
6、 关于C语言中的数组说法错误的是:_____.
答案: 数组中元素的下标是从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;
}
答案: 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;
}
答案: check_number(ch)
9、 在定义int a[5][4];之后,对a数组第2行第3列的元素的引用哪个是正确(假设a[0][0]是第一行第一列元素):__。
答案: a[1][2]
10、 在C语言中,调用一个函数可得到_____。
答案: 最多一个返回值
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;
}
答案: 2
12、 在C语言函数中,正确的说法是__。
答案: 可以有也可以没有形参
13、 在C语言中,正确的说法是__。
答案: 函数的定义不可以嵌套,但函数的调用可以嵌套
14、 C语言的函数名实际上是_____。
答案: 函数的入口地址
15、 在定义C语言函数时,如果函数首部冠以关键字void,表示此函数_____。
答案: 无返回值
16、 以下对二维数组a进行正确初始化的是__。
答案: 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[2][4];
a[5][0];
a[0,0]
18、 以下错误的定义语句是__。
答案: #define M 5;
int A[M];;
int A[5,6];;
int A[][3];
19、 以下对字符数组word进行正确初始化的是__。
答案: 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;
}
答案: 840
2、 以下对有十个元素的一维数组a进行正确的初始化的是:
答案: int a[10]={1,23};
3、 有如下声明: int a[10]={0,1,2,3,4,5,6,7,8,9}; 则数值不是6的表达式是:___.
答案: a[7]
4、 以下程序的输出结果是__。int main(void){
char a[5]={‘1′,’2′,’3′,’4′,’\0’};
puts(a);
return 1;
}
答案: 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;
}
答案: 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;
}
答案: 4 5 6
7、 字符串sx小于字符串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中的元素从大到小排序
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;
}
答案: 将数字字符串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;
}
答案: 求字符数组长度
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;
}
}
}
答案: 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;
}
答案: 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 答案: 3
14、 以下关于数组的描述正确的是__。
答案: 数组的大小是固定的,所有数组元素的类型必须相同。
15、 在C99之前的C标准中,以下一维数组的正确定义是__。
答案: #define SIZE 10 int a[SIZE];
16、 在执行char str[10]=”China\0”; strlen(str)的结果是__。
答案: 5
17、 对语句int a[10]={3,4,5,6,7}的正确理解是__。
答案: 将5个初值依次赋给a[0]至a[4]
18、 在执行char str[10]=”China”; strlen(str)的结果是__。
答案: 6
19、 若二维数组a有m列,则在a[i][j]之前的元素个数为__。
答案: i*m+j
20、 下面程序段的运行结果是__。char a[7]=“abcdef”, b[5]=“ABCD”;
strcpy(a,b);
printf(“%c”, a[5]);
答案: f
21、 C语言中字符串比较操作的库函数头文件是__。
答案: string.h
作业第六讲:数组应用 第六讲:数组应用–编程题
1、 矩阵重复元素检测
建议:本题是主观题,暂无解析
2、 索引数组排序
建议:本题是主观题,暂无解析
3、 统计学生成绩
建议:本题是主观题,暂无解析
4、 回文数
建议:本题是主观题,暂无解析
5、 逆序存放
建议:本题是主观题,暂无解析
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页