0.0873

五煦查题

快速找到你需要的那道考题与答案

超星探秘神奇的程序世界课后答案(学习通2023完整答案)

76 min read

超星探秘神奇的程序世界课后答案(学习通2023完整答案)

1.2小试身手——几个简单的超星C程序

1、【单选题】C语言属于下列哪一类计算机语言( )
A、探秘汇编语言
B、神奇高级语言
C、程答案机器语言
D、序世习通以上均不属于

2、界课【单选题】一个c程序的后答执行是从( )。
A、案学main( )函数开始,完整直到main( )函数结束
B、超星第一个函数开始,探秘直到最后一个函数结束
C、神奇第一个语句开始,程答案直到最后一个语句结束
D、序世习通main( )函数开始,界课直到最后一个函数结束

3、【单选题】下列选项中,哪一个是多行注释( )
A、//
B、/**/
C、\\
D、以上均不是

4、【判断题】C是一种解释型的高级语言。

5、【判断题】函数是C语言程序的基本组成部分。

2.1异彩纷呈——数据的表现形式

1、【单选题】下面四个选项中,均是合法整型常量的选项是( )
A、160 -0xcdf -01 -0x48a
B、xffff 01a 986,012 2e5
C、1 0xe 0668 0x

2、【多选题】C程序中的标识符由( )构成。
A、英文字母
B、数字(0-9)
C、下划线
D、空格

3、【填空题】在程序运行过程中,其值不能被改变的量称为( );其值可以变化的量,称为( )。

4、【填空题】整型数据在内存中是以( )码形式存储的。

5、【填空题】浮点型主要包括单精度型浮点和( )型浮点。

2.2运算出场——基本的运算符和表达式

1、【单选题】若变量已正确定义并赋值,以下符合C语言语法的表达式是( )
A、a:=b+1
B、a=a+7=c+b
C、int 18.5%3
D、a=b=c+2

2、【单选题】计算表达式:x=(i=5,j=20,k=24);后,x的值是( )。
A、5
B、20
C、24
D、49

3、【单选题】若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为( )。
A、7
B、8
C、9
D、10

4、【单选题】若有定义:int a=7; float x=2.5 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( )。
A、2.500000
B、2.750000
C、3.500000
D、0.000000

5、【单选题】设有定义:int a;以下scanf语句中能正确为变量a读入数据的是( )
A、scanf("%d,&a");
B、scanf("%d",&a);
C、scanf("%d,a");
D、scanf("%d",a);

3.2择优录取——选择结构

1、【单选题】关于switch语句,下列说法不正确的是( )
A、case和default子句的先后顺序不可以变动
B、一个case语句允许由多个语句,并可以不用{ }括起来
C、case的常量表达式的值必须互不相同
D、switch语句常用于多分支选择结构

2、【填空题】下列程序段运行的结果为( ) x=2; if(x>0) y=1; printf("%d",y);

3、【填空题】下列程序段运行的结果为( ) int x=1; int y=2; if(x%2==0) y++; else y--; printf("y=%d",y);

4、【填空题】下列程序段运行的结果为( ) x=0; if(x>0) y=1; else if(x=0) y=0; else y=-1; printf("%d",y);

5、【填空题】下列程序段运行的结果为( ) x=2; switch(x%3) { case 2: printf("Are "); case 1:printf("you "); case 0:printf("right"); default: printf("?"); }

6、【判断题】在嵌套使用if语句时,C语言规定else总是和之前与其最近的if配对。

7、【判断题】以下写法是否表示x属于区间[1,100]:if(1<=x<=100)

3.3周而复始——循环结构

1、【单选题】设执行变量y值为3,执行下列循环语句后,变量y的值是( )。 do y++; while(y++<4)
A、3
B、4
C、5
D、6

2、【单选题】在c语言中while循环和do--while循环的主要区别是( )
A、do--while循环体内可以使用break语句,while循环体内不能使用break语句
B、do--while的循环体至少无条件执行一次,while的循环体不是
C、do--while循环体内可以使用continue语句,while循环体内不能使用continue语句
D、while的循环体至少无条件执行一次,do--while的循环体不是

3、【单选题】以下程序段运行后,循环体运行的次数为( )。 int i=10,x; for(;i<10;i++) x=x+i;
A、10
B、0
C、1
D、无限

4、【单选题】以下程序的运行结果是( )。 int main() { int sum = 0, item = 0; while(item < 5) { item++; sum += item; if(sum>=6) break; } printf("%d\n",sum); return 0; }
A、10
B、15
C、6
D、7

5、【单选题】以下程序的运行结果是( )。 int main() { int sum = 0, item = 0; while(item < 5) { item++; if(item == 2) continue; sum += item; } printf("%d\n",sum); return 0; }
A、10
B、13
C、15
D、1

6、【判断题】while语句的循环体不能是复合语句。

7、【判断题】在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来变成一条复合语句。

8、【判断题】for循环是先执行循环体语句,后判断表达式。

3.4综合运用——结构化程序设计案例

1、【单选题】以下程序的功能是:从键盘输入的一批正整数中求出最大者,输入0时结束循环,请选择填空( ) #include<stdio.h> int main() { int a,max=0; scanf("%d",&a); while(_____) { if(max<a) max=a; scanf("%d",&a); } printf("%d",max); return 0; }
A、a==0
B、a
C、!a==1
D、!a

2、【单选题】下面程序的功能是计算正整数2345的各位数字平方和,请选择填空( ) #include <stdio.h> int main() { int n,sum=0; n=2345; do { sum=sum+(n%10)*(n%10); n=______________; }while(n); printf("sum=%d",sum); return 0; }
A、n/1000
B、n/100
C、n/10
D、n%10

3、【单选题】下面程序的运行结果是( ) #include<stdio.h> int main() { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } printf("%d\n",a); return 0; }
A、7
B、8
C、9
D、10

4、【填空题】下列程序运行的结果是( ) int main() { 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("\na=%d,b=%d",a,b); return 0; }

4.1功能封装——函数ABC

1、【单选题】以下正确的函数定义形式是( )
A、double fun (int x,int y){ }
B、double fun (int x;int y){ }
C、double fun (int x,int y);
D、double fun (int x,y){ }

2、【单选题】以下说法不正确的是( )
A、实参可以是常量、变量或表达式
B、实参可以是任何类型
C、形参可以是常量、变量或表达式
D、形参应与实参类型一致

3、【单选题】以下说法正确的是( )
A、实参与其对应的形参共同占用一个存储单元
B、实参与其对应的形参始终各自占用独立的存储单元
C、只有当实参和与其对应的形参同名时才共同占用存储单元
D、形参在没有发生函数调用时不占用存储单元

4、【填空题】下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是( )(请整行写出),改正后为( )(请整行写出)。 void add(float a,float b) { float c; c=a+b; return c; }

5、【填空题】以下程序的运行结果是( ) #include <stdio.h> int main() { int a=1,b=2,c; c=max(a,b); printf("max is %d\n",c); return 0; } int max(int x, int y) { int z; z=(x>y)? x:y; return z; }

4.2有去有回——函数的嵌套调用和递归调用

1、【填空题】若函数a( )调用了函数b( ),而函数b( )又调用了函数a( ),这样的调用称为( )调用。

2、【填空题】以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。请填空: #include<stdio.h> int age(int n) { int c; if(n==1) c=10; else c=( ); return(c); } int main() { int n=5; printf(“age: %d\n”,( )); return 0; }

3、【填空题】下面程序的运行结果是________。 int main() { int i=5; printf("%d\n",sub(i)); return 0; } int sub(int n) { int a; if(n==1) return 1; a=n+sub(n-1); return(a); }

4、【判断题】函数可以嵌套调用,但是函数不能嵌套定义。

4.4分而治之 ——模块化程序设计

1、【填空题】以下程序的运行结果是( ) void increment() { int x=0; x+=1; printf("%d\n",x); } int main() { increment(); increment(); increment(); return 0; }

2、【填空题】有如下程序,若输入a=23,b=17,c=19,那么输出结果为( ) #include <stdio.h> int main() { int dif(int x,int y,int z); int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=dif(a,b,c); printf("Max-Min=%d\n",d); return 0; } int dif(int x,int y,int z) { int max(int x,int y,int z); int min(int x,int y,int z); return max(x,y,z)-min(x,y,z); } int max(int x,int y,int z) { int r, c; r=x>y?x:y; c=r>z?r:z; return c; } int min(int x,int y,int z) { int r, c; r=x<y?x:y; c=r<z?r:z; return c; }

4.5捉摸不定——变量的存储属性

1、【单选题】以下程序的运行结果是: #include <stdio.h> int a=3, b=5; int max(int a, int b) { int c; c=a>b?a:b; return c; } int main() { int a=8; printf("%d\n", max(a, b)); return 0; }
A、8
B、5
C、3
D、0

2、【填空题】请写出以下程序的运行结果( ) int main( ) { void increment( ); increment( ); increment( ); increment( ); return 0; } void increment( ) { static int x=0; x++; printf("%d\n",x); }

3、【填空题】关键字( )既可以用来扩展外部变量在本文件中的作用域,又可以使外部变量的作用域从一个文件扩展到程序中的其他文件。

4、【填空题】从变量的作用域角度来观察,变量可分为( )变量和全局变量。

5、【填空题】C的存储类别包括auto、( )、register、extern四种。

5.1批量处理——一维数组

1、【单选题】如下数组定义语句,正确的是()
A、int a[3,4];
B、int n=3,m=4,int a[n][m];
C、int a[3][4];
D、int a(3)(4);

2、【单选题】以下在定义一维数组a的同时,给a数组所有元素赋初值0,正确的语句是()
A、int a[8]=;
B、int a[8]=0,0,0,0,0,0,0,0;
C、int a[8]={ };
D、int a[8]=0;

3、【单选题】若有说明:int a[10];则对a数组元素的正确引用是()
A、a[10]
B、a[3.5]
C、a(5)
D、a[10-10]

4、【单选题】以下程序的输出结果是( ) int main( ) { int b[3]={ 0, 1, 2}, i, t=1; for(i=0; i<3; i++) t=t+b[i]; printf("%d\n", t); return 0; }
A、4
B、3
C、2
D、1

5、【单选题】下面程序的运行结果是( ) int main() { int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } }
A、–4 0 4 0 4
B、–4 0 4 0 3
C、–4 0 4 4 3
D、–4 0 4 4 0

5.2完美矩形——二维数组

1、【单选题】以下对二维整型数组a的正确声明是( )
A、inta[3][];
B、float a(3,4);
C、double a[1][4];
D、float a(3)(4);

2、【单选题】若有说明:int a[3][4];则对a数组元素的正确引用是( )
A、a[2][4]
B、a[1,3]
C、a[1+1][0]
D、a(2)(1)

3、【单选题】二维数组a有m行n列,则在a[i][j]之前的元素个数为( )
A、j*n+i
B、i*n+j
C、i*n+j-1
D、i*n+j+1

4、【单选题】定义如下变量和数组: int k; int a[3][3]={ 1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( ) for (k=0;k<3;k++) printf("%d ",a[k][2-k]);
A、3 5 7
B、3 6 9
C、1 5 9
D、1 4 7

5.3戴帽成串——字符数组和字符串

1、【单选题】对两个数组a和b进行如下初始化: char a[]=”ABCDEF”; char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是( )
A、a和b数组完全相同
B、a和b长度相同
C、a和b中都存放字符串
D、a数组比b数组长度长

2、【单选题】设有数组定义: char array[ ]="China"; 则数组 array所占的空间为( )
A、4个字节
B、5个字节
C、6个字节
D、7个字节

3、【单选题】下面程序的运行结果是( ) #include <stdio.h> int main() { char str[ ]=”SSSWLIA”,c; int k; for(k=2;(c=str[k])!=’\0’;k++) { switch(c) { case ‘I’: ++k;break; case ‘L’: continue; default : putchar(c); continue; } putchar(‘*’); } return 0; }
A、SSW
B、SW*
C、SW*A
D、SW

4、【单选题】以下对字符数组的描述,正确的是( )
A、可以用length函数计算字符数组中字符串的长度
B、字符数组只能存放字符串,不能存放普通字符
C、使用printf函数整体输出字符数组中的字符串时,输出到字符'\0'结束输出
D、字符串数组是一维字符数组

5.4排兵布阵——数组的排序

1、【单选题】有如下定义语句:int aa[][3]={ 12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列下标各为( )
A、3,2
B、3,1
C、2,2
D、2,1

2、【填空题】题意:将数组a中的10个整数降序(冒泡)排列并输出,请填空。 #include <stdio.h> int main() { int a[10]={ 1,2,3,4,5,6,7,8,9,10}; int i,j,t; for(i=0;( );i++) for(j=0;( );j++) { if( ) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } printf("排序后的结果为:"); for(i=0;i<10;i++) printf("%4d\n",a[i]); printf("\n"); return 0; }

5.6知识拓展——向函数传递数组

1、【单选题】使用( )作函数实参时,向形参传递的是数组首元素的地址。
A、数组元素
B、数组名
C、数组
D、简单变量

2、【填空题】向函数传递数组有两种情况:一种是使用数组元素作为函数参数,另一种是使用( )作为函数参数。

3、【填空题】补全程序,要求由实参数传来一个字符串,统计此字符串中的字母、数字、空格和其它字符的个数。 #include<stdio.h> #define SIZE 100 void tongji(char a[]) { int i=0; int letters=0, numbers=0,space=0,other=0; while( ) { if(a[i]>='a' && a[i]<='z' ||a[i]>='A'&& a[i]<='Z') letters++; else if( ) numbers++; else if(a[i]==' ') space++; else other++; i++; } printf("letters=%d, numbers=%d,space=%d,other=%d\n",letters,numbers,space,other); } int main() { char a[SIZE]; int i; for(i=0;i<SIZE;i++) a[i]='\0'; gets(a); ( ) return 0; }