丰欺尽帅漠霞握郊措哄庙关荤
本门课程完整答案:点击这里,查看 C语言程序设计(华中科技大学) 中国大学mooc答案满分完整版章节测验 m308498
相关试题
有以下程序#include <stdio.h>void main( ) { int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; continue; } a-=3; } printf(“%d”,b); }程序运行后的输出结果是( )。
答案: 4
有以下程序#include <stdio.h>void main( ){ int i; for(i=0;i<3;i++) { switch(i) { case 1: printf(“%3d”,i); case 2: printf(“%3d”,i); default: printf(“%3d”,i); } } }执行后输出结果是( )。
答案: 0 1 1 1 2 2
下面程序的输出是( )。#include <stdio.h>void main( ){ int y=9; for( ; y>0 ; y–) { if(y%3==0) { printf(“%3d”,–y); continue; } }}
答案: 8 5 2
有以下程序#include <stdio.h>void main( ){ int x,i; for(i=1;i<=50;i++) { x=i; if(++x%2==0) if(x%3==0) if(x%7==0) printf(“%d”,i); }}输出结果是( )。
答案: 41
以下程序为求序列:1/2 3/4 5/8 7/16 9/32 ……所有大于或等于0.000001的数据项之和。请选择正确的答案填空( )。#include<stdio.h>void main( ){ float sum, a , b ; //sum代表和, a代表分子, b代表分母 sum = 0.0 ; a = 1; //分子赋初值 b = 2 ; //分母赋初值 while (a / b >=1e-6) { _____; a = a + 2; //求下一项分子 b = b * 2; //求下一项分母 } printf(“sum = %f”,sum);}
答案: sum += (a / b)
已知abc + cba = 1333,a, b, c,为一位数,以下程序为求所有可能的a, b, c的程序。请选择正确的答案填空( )。#include<stdio.h>void main( ) { int i,a,b,c; for (i =100 ; i<=999 ; i++) { a = i/100 ; //求百位数 b =( i- a100)/10; //求十位数 c = i%10; //求个位数 if( _____) { printf(” a=%d,b=%d,c=%d”,a,b,c ); } } }
答案: (a100+b10+c+c100+b10+a)==1333
以下程序为求两个正整数的最大公约数的程序。请选择正确的答案填空( )。#include<stdio.h>void main( ) { int i, a, b; scanf(“%d%d”,&a,&b); for (_____ ; i > 0 ; i –) { if( (a % i == 0) && (b % i == 0)) { printf(” the max = %d “, i ) ; break ; } } }
答案: i = (a<b ? a : b)
以下程序为判断一个正整数是否为素数的程序。请选择正确的答案填空( )。#include<stdio.h>void main( ) { int i, a ; scanf(“%d”,&a); for (i = 2 ; i < a ; i ++) { if(____) { break ; } } if(i >= a) { printf(“%d is a sushu.”,a); } else { printf(“%d is not a sushu.”,a); } }
答案: a % i == 0
用100元钱买100只鸡,其中母鸡每只3元,公鸡每只2元,小鸡1元3只,且每种鸡至少买1只。以下程序为计算百钱买百鸡所有可能购买方案的程序。请选择正确的答案填空( )。#include<stdio.h>void main( ){ int a, b, c; //a,b,c分别代表母鸡 公鸡和小鸡数 for (a = 1 ; a <= 98 ; a ++) { for (b = 1 ; b <= 98 ; b ++) { for (c = 1 ; c <= 98 ; c ++) { if(_________) { printf(“muji : %d, gongji: %d, xiaoji: %d”,a,b,c); } } } }}
答案: (a+b+c==100) && (a3+b2+c/3 ==100) && (c %3 ==0)
计算1!, 2!, 3!, ……,10! 的值,并输出结果。请选择正确的答案填空( )。#include<stdio.h>void main( ){ int i; long int s =1 ; //s代表阶乘的结果 for (i=1;i<=10;i++) { ____; printf(“%d! = %ld”, i, s); }}
答案: s *= i
for循环语句中的三个表达式起着不同的作用,表达式1一般用于进入循环前给某些变量赋初值;
答案: 正确
在for循环语句中,表达式1 表达式2和表达式3都是逗号运算表达式;
答案: 错误
在C语言编程中应该尽量少用空格或者空行;
答案: 错误
在C语言编程中,如果出现嵌套的大括弧对{ },使用缩进对齐的格式能增强程序的可读性;
答案: 正确
C语言的辅助控制语句包括break,continue return和goto语句;
答案: 正确
C语言编程中,不提倡把多个语句写在一行中,提倡一行只写一条语句;
答案: 正确
在C语言编程时,要养成修改代码同时修改相应注释的习惯,以保证注释与代码的一致性。
答案: 正确
在C语言编程中,相对独立的程序块之间 变量说明之后加上空行可以增加程序的可读性。
答案: 正确
第五周:函数(1) 第五周单元测试
下列关于C语言程序的结构化设计,说法错误的是( )
答案: 只有一个源文件,对函数大小没有限制
定义函数void fun()函数,函数的返回值类型为()
答案: 函数无返回值
下面关于函数描述正确的是()
答案: 函数的定义不可以嵌套,但是调用可以嵌套
若定义函数时函数的返回类型缺省,则函数的默认数据类型为()
答案: int
一个函数返回值的类型是由( )决定的
答案: 定义函数时指定的函数数据类型
下面叙述中正确的是( )
答案: 对于用户自己定义的函数,在使用前必须加以说明
函数的形参可以是()
答案: 局部自动变量
有如下定义的函数:func(int a){ printf(“%d”,a);}则该函数的返回值类型是()
答案: int类型
函数内部的局部静态变量,下列说法正确的是( )
答案: 在函数退出后不被释放,程序执行结束释放
局部自动变量,下列说法正确的是()
答案: 进入函数分配内存,退出函数,释放内存
下列说法不正确的是( )
答案: 全局静态变量和局部静态变量,作用域和寿命相同
下面程序段运行的结果为()#include <stdio.h>int f();int f() { static int i=0; int s=1; s+=i; i++; return s; } void main() { int i,a=0; for(i=0;i<5;i++) a+=f(); printf(“%d”,a); }
答案: 15
下面程序段运行的结果为( )#include <stdio.h>int try1( );int try1( ){ static int x=3; x++; return x;}void main(){ int i,x; for(i=0; i<=2; i++) x=try1( ); printf(“%d”, x);}
答案: 6
下面程序的运算结果为( )#include <stdio.h>void fun();int main(){ int a=10; fun(); printf(“%3d”,a); return 0;}void fun(){ int a=20; printf(“%3d”,a);}
答案: 20 10
以下正确的函数形式是( )
答案: int fun(int x,int y){ double z; z=x+y; return z;}
以下程序的输出结果是()#include <stdio.h>int i=10;int func();void main(){ int j=1; j=func(); printf(“%3d”,j); j=func(); printf(“%3d”,j);}int func(){ int k=0; k=k+i; i=i+10; return k;}
答案: 10 20
函数内定义的局部变量可以在函数运行结束后继续被调用
答案: 错误
变量根据其作用域的范围可以分作局部变量和全局变量
答案: 正确
当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区
答案: 错误
在一个函数内定义的静态局部变量不能被另外一个函数所调用
答案: 正确
函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5
答案: 错误
变量被定义后,它的作用域和寿命就被确定了,并且不可改变。
答案: 正确
在同一个作用域不可定义同名变量,在不同的作用域可以定义同名变量
答案: 正确
函数内部的静态变量,在函数退出后不被释放
答案: 正确
C语言中函数返回值的类型由return语句中的表达式的类型决定
答案: 错误
C语言中一般全局变量与静态全局变量生存期不同
答案: 错误
程序进行编译时,不为形式参数分配存储空间
答案: 正确
编译器根据函数的原型来检查函数的调用正确与否
答案: 正确
第六周:函数(2) 第六周单元测验
下列说法中正确的是()
答案: 函数原型是一条语句,不包括函数体
在调用函数时,如果实参是整型变量,它与对应形参之间的数据传递方式是()
答案: 单向值传递
若定义函数float *fun( ),则函数fun的返回值为( )
答案: 一个指向变量的指针
C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是( )
答案: 同名的局部变量
以下结论中只有( )是正确的
答案: 所有的递归程序均可以采用非递归算法实现
main()函数的数据类型,可以是( )
答案: void
下面程序段运行的结果为( )#include <stdio.h>int fun(float x,float y);int fun(float x,float y){ return x > y ? x : y;}void main(){ printf(“%d,%d”,fun(3,5),fun(4.8,4.6));}
答案: 5,4
下面程序的运算结果为( )#include <stdio.h>int fun(int n);int fun(int n){ if(n == 1 || n == 2) return 1; return fun(n-1)+fun(n-2);}void main(){ printf(“%d”,fun(6));}
答案: 8
以下程序运行结果是( )#include <stdio.h>void f(int a, int b);void f(int a, int b){ int t; t = a; a = b; b = t;}void main(){ int x = 3, y = 2, z = 1; if (x > y) f(x, y); if (y > z) f(y, z); if (x > y) f(x, y); printf(“%d, %d, %d”, x, y, z);}
答案: 3, 2, 1
以下程序的输出结果是( )#include <stdio.h>int func(int s);void main( ){ int i,x=0; for(i=0;i<4;i++) { x=func(i+1); printf(“%3d”,x); } printf(“”);}int func(int s){ int x; static int t=3; x=s+t; t++; return x;}
答案: 4 6 8 10
以下程序的执行结果是()#include <stdio.h>int swap(int a,int b);void main(){ int a,b; a=3,b=10; swap(a,b); printf(“a=%d,b=%d”,a,b); }int swap(int a,int b){ int temp; temp=a; a=b; b=temp; return 0;}
答案: a=3,b=10
以下程序的执行结果是()#include <stdio.h>int sum(int k);void main(){ int s,i; for(i=1;i<=10;i++) s=sum(i); printf(“s=%d”,s);}int sum(int k){ int x=0; return (x+=k); }
答案: s=10
以下程序的执行结果是()#include <stdio.h>int func(int );void main(){ int a=1,i; for(i=0;i<4;i++) { printf(“%3d”,func(a+i)); }}int func(int b){ static int i; return b+i;}
答案: 1 2 3 4
以下程序的执行结果是()#include <stdio.h>int multi(int x,int y);void main(){ int a,b,c; a=10,b=12; c=mult(a,b); printf(“%d%d=%d”,a,b,c);}int multi(int x,int y){ return xy;}
答案: 1012=120
以下程序的执行结果是()#include <stdio.h>int n;void func();void main(){ static int x=6; int y; y=n; func(); printf(“x=%d,y=%d,n=%d”,x,y,n);}void func(){ static int x; int y=10; x=x+20; n=n+2; y=y+n;}
答案: x=6,y=0,n=2
C语言中,函数调用时,形参与实参的个数可以不必保持一致
答案: 错误
C语言函数间使用值传递数据时,对形参进行写操作,会影响主调函数里相关变量的值
答案: 错误
C语言中,一个函数可以有多个返回值
答案: 错误
C语言函数间使用传址方式传递数据时,对形参进行写操作,可以影响主调函数里相关变量的值
答案: 正确
C语言中,使用全局变量可以使程序设计简单,移植性好
答案: 错误
函数的递归调用是一个函数直接或间接地调用它自身
答案: 正确
第七周:数组(1) 第七周单元测验
下列一维数组定义正确的是( )
答案: int a[3];
下列一维数组定义与初始化错误的是( )
答案: int a[3] = 0;
下列二维数组定义和初始化错误的是( )
答案: int a[3][];
在下列语句条件下,二维数组的定义和初始化错误的是( )#define SIZE 9
答案: int a[][SIZE];
假定int型变量在内存中占2个字节,那么二维数组int a[3][4]所占的字节数为 ( )
答案: 24
若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为 ( )
答案: 3
下列关于数组概念的描述中,错误的是( )
答案: 数组定义后,它的元素个数是可以改变的
已知double dd[ ][3]={{1.2, 2.4, 3.6}, {4.8, 5.2},{6.4}}; dd[2][2]的值为( )
答案: 0.0
若有定义语句:int m[][3]={1,2,3,4,5,6,7};,则与该语句等价的是( )
答案: int m[][3]={{1,2,3},{4,5,6},{7}};
程序填空。程序功能:求矩阵的最小值,并记录最小值的行列号。#include <stdio.h>void main(){ int i, j, min; int row=0,column=0; int a[3][3]={{1,2,3},{2,-3,4},{9,4,7}}; min=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(_____) { min=a[i][j]; row=i+1; column=j+1; } } } printf(“min=%d,row=%d,column=%d”,min,row,column);}程序中空白处所填语句正确的为( )
答案: min>a[i][j]
若有定义语句int a[10]; 以下叙述中正确的是( )
答案: a[0]是合法的数组元素,a[10]不是合法的数组元素
下列有一行是错误的(每行程序前的数字表示行号),程序有错误的行数是( )1 include <stdio.h>2 void main( )3 {4 int a[3] = {2*3};5 int i, sum=0;6 for( i=0; i<3; i++ )7 {8 scanf(“%d”, a[i]);9 sum += a[i];10 }11 printf( “%d”, sum );12 }
答案: 第8行有错误
若有以下数组说明,则a[a[i]]元素数值是( )。int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}, int i=10;
答案: 6
以下叙述中正确的是( )
答案: 语句int a[8]={0};是合法的
程序填空。程序功能:计算两个矩阵的乘积。#include <stdio.h>void main(){ int valueA[3][4]={{2,3,-5,0},{12,-1,2,8},{1,12,-2,1}}; int valueB[4][5]={{5,13,0,1,5},{-2,0,4,1,5},{5,3,2,1,0},{0,1,2,0,1}}; int valueC[3][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}}; int i,j,k; for(i=0; i<3; i++) for(j=0; j<5; j++) for(k=0; k<4;k++) ______; for(i=0;i<3;i++) { printf(“”); for(j=0;j<5;j++) printf(“%5d”,valueC[i][j]); }}程序中空白处所填语句正确的为( )
答案: valueC[i][j] += valueA[i][k] * valueB[k][j]
一维数组在内存中的存储空间是连续的;二维数组在存储中的存储空间每一行是连续,不同行之间则不连续。
答案: 错误
数组可以动态指定大小。
答案: 错误
数组初始化时可以仅初始化部分元素的值。
答案: 正确
数组所占的元素取决于数组的大小,如果数组大小为N,则在该数组所占内存大小为N个字节。
答案: 错误
同一个数组可以存放不同数据类型的数值。
答案: 错误
二维数组初始化语句”int a[2][2] = {{0},{2}};” 是正确的。
答案: 正确
砍限煽巍尚皮排溯贝刹拖溃嫉