绪论 单元测试
1、单选题:计算机能够直接识别的语言是()。
A:机器语言
B:汇编语言
C:高级语言
正确答案:【机器语言】
第一章 单元测试
1、单选题:下列表达式,值为0的是()。
A:3<5
B:3%5
C:3/5.0
D:3/5
正确答案:【3/5
】
2、单选题:下列变量定义中合法的是()。
A:double Ave=0.0;
B:double Stu-score=98;
C:int f(x)=1;
D:short int 2_num=79;
正确答案:【double Ave=0.0;】
3、单选题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是()
A:a的值是字符型
B:a的值还是整型
C:a的值是浮点型
D:不允许字符型和浮点型相加
正确答案:【a的值还是整型】
4、单选题:若a是基本整型变量,c是单精度实型变量,输入语句()是错误的。
A:scanf(“%d%f”, &a, &c);
B:scanf(“d=%d, c=%f”, &a, &c);
C:scanf(“%d,%f”, &a, &c);
D:scanf(“%d%f”, a, c);
正确答案:【scanf(“%d%f”, a, c);】
5、单选题:下列说法正确的是()
A:const常量只能在定义时赋值
B:C程序中使用变量时,可以先使用,再定义
C:一条变量定义语句不可以同时定义多个变量
D:在C语言中,所有变量都必须在定义的同时初始化
正确答案:【const常量只能在定义时赋值】
第二章 单元测试
1、单选题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:(x-y)*(x-y)<100
D:x-y>-10 && x-y<10
正确答案:【(x-y)<-10||!(y-x)>10】
2、单选题:以下程序运行后的输出结果是()#include <stdio.h>int main(){int a=5,b=4,c=3,d;d=(a>b>c);printf(“%dn”,d);return 0;}
A:1
B:3
C:5
D:0
正确答案:【0
】
3、单选题:
- 执行以下程序后的输出结果为()
- #include <stdio.h>
- int main()
- {
- int a=1,b=0;
- switch (a)
- {
- case 1:
- switch (b)
- {
- case 0: printf(“**0**”);break;
- case 1: printf(“**1**”);break;
- }break;
- case 2: printf(“**2**”);break;
- }
- return 0;
- }
A:**0****2**
B:**0****1****2**
C:有语法错误
D:**0**
正确答案:【**0**】
4、单选题:下面程序代码的功能是判断输入的整数能否被5或7整除,如果能够整除,则输出该整数。请将划线处代码填写完整
- #include <stdio.h>
- int main()
- {
- int m;
- printf(“Input m: “);
- scanf(“%d”, &m);
- if ( _______________ ) //能够被5或7整除
- {
- printf(“%d”, m);
- }
- return 0;
- }
A:m%5==0 || m%7==0
B:m/5==0 && m/7==0
C:m%5==1 && m%7==1
D:m/5==0 || m/7==0
正确答案:【m%5==0 || m%7==0】
5、单选题:
- 计算
- 1-1/2+1/3-1/4+…..+1/99-1/100+……
- 直到最后一项的绝对值小于1e-4为止。
- 代码如下,按要求在划线处填写适当的表达式或语句,使程序完整并符合题目要求。
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int n = 1;
- float term = 1, sum = 0;
- _____(1)_________;
- while (fabs(term) >= 1e-4) //判末项大小
- {
- term = sign / n; //求出累加项
- sum = sum + term; //累加
- ______(2)__________; //改变项的符号
- n++; //分母加1
- }
- printf(“sum = %f”, sum);
- return 0;
- }
A:(1): float sign=1
(2): term = -term
B:(1): float sign= -1
(2): sign = -sign
C:(1): float sign=1
(2): sign = -sign
D:(1): float sign= -1
(2): term = -term
正确答案:【(1): float sign=1
(2): sign = -sign
】
6、单选题:
- 以下程序运行后的输出结果是
- #include <stdio.h>
- int main()
- { int a,b,c;
- a=10;
- b=20;
- c=(a%b<1)||(a/b>1);
- printf(“%d,%d,%d”,a%b,a/b,c);
- return 0;
- }
A:10,1,0
B:10,1,1
C:10,0,0
D:10,0,1
正确答案:【10,0,0
】
7、单选题:
从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。
程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- float a, b, c;
- float s, area;
- printf(“Input a,b,c:”);
- scanf(“%f,%f,%f”,&a,&b,&c); // 第1处
- if (a+b>c && b+c>a && a+c>b) // 第2处
- {
- s = 1/2 * (a + b + c); // 第3处
- area = sqrt(s * (s – a) * (s – b) * (s – c)); // 第4处
- printf(“area=%.2f”, area);
- }
- else
- {
- printf(“It is not a triangle”);
- }
- return 0;
- }
A:第1处
B:第4处
C:第3处
D:第2处
正确答案:【第3处】
8、单选题:
- 以下程序的输出结果是()
- #include <stdio.h>
- int main()
- {
- int a=1234;
- printf(“%2d”,a);
- return 0;
- }
A:34
B:程序出错,无结果
C:12
D:1234
正确答案:【1234】
9、单选题:
以下程序的输出结果是()
#include <stdio.h>int main(){ int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3==1) { b+=3; continue; } } printf(“%d”,a); return 0;}
A:1
B:3
C:2
D:4
正确答案:【4】
10、单选题:
- #include <stdio.h>
- int main()
- {
- int s=0,a=1,n;
- scanf(“%d”,&n);
- do
- {
- s+=1;
- a=a-2;
- } while(a!=n);
- printf(“%d”,s);
- return 0;
- }
- 以上代码,如果从键盘给n输入的值是-5,则程序的输出结果是()
A:1
B:2
C:4
D:3
正确答案:【3】
第三章 单元测试
1、单选题:C语言中函数返回值的类型是由()决定的。
A:调用函数时临时决定
B:定义函数时所指定的函数类型
C:return语句中的表达式类型
D:调用该函数的主调函数的类型
正确答案:【定义函数时所指定的函数类型】
2、单选题:对于C语言的函数,下列叙述中正确的是()。
A:函数的定义和调用都可以嵌套
B:函数的定义和调用都不能嵌套
C:函数的定义可以嵌套,但函数调用不能嵌套
D:函数的定义不能嵌套,但函数调用可以嵌套
正确答案:【函数的定义不能嵌套,但函数调用可以嵌套】
3、单选题:下列函数中,能够从键盘上获得一个字符数据的函数是()。
A:gets( )
B:getchar( )
C:putchar( )
D:puts( )
正确答案:【getchar( )】
4、单选题:以下叙述中不正确的是()。
A:在一个函数内定义的变量只在本函数范围内有效
B:函数中的形式参数是局部变量
C:在不同的函数中可以使用相同名字的变量
D:在一个函数内的复合语句中定义的变量在本函数范围内有效
正确答案:【在一个函数内的复合语句中定义的变量在本函数范围内有效】
5、单选题:C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。
A:void
B:double
C:float
D:int
正确答案:【int】
6、单选题:下列程序的输出结果是()。#include <stdio.h>
int MyFuntion(int n);
int main(){ int entry = 12345; printf(“%5d”, MyFuntion(entry)); return 0;}int MyFuntion(int Par) { int result; result = 0; do { result = result * 10 + Par % 10; Par /= 10; } while (Par); return result;}
A:54321
B:5432
C:12345
D:543
正确答案:【54321】
7、单选题:下列程序的输出结果是()。#include <stdio.h>
int x1 = 30, x2 = 40;sub(int x, int y) { x1 = x; x = y; y = x1;}
int main(){ int x3 = 10, x4 = 20; sub(x3, x4); sub(x2, x1); printf(“%d,%d,%d,%d”, x3, x4, x1, x2); return 0;}
A:20,10,30,40
B:10,20,30,40
C:10,20,40,40
D:10,20,40,30
正确答案:【10,20,40,40】
8、单选题:有以下程序#include <stdio.h>int fun(int x){ printf(“x=%d”,++x);}
int main(){ fun(12+5); return 0;}
A:x=17
B:x=18
C:x=12
D:x=13
正确答案:【x=18】
9、单选题:以下程序运行后的输出结果是()int f(int n){ if(n==1) return 1;
else return f(n-1)+1;}int main(){ int i,j=0;
for(i=1;i<3;i++) j+=f(i); printf(“%d”,j);
return 0;}
A:4
B:3
C:有语法错
D:5
正确答案:【3】
10、单选题:以下()不是正确的函数原型?
A:int f();
B:int f(int i);
C:int f() {}
D:int f(int);
正确答案:【int f() {}】
第四章 单元测试
1、单选题:在int a[ ][3] = { {1,4}, {3,2}, {4,5,6}, {0} };中,a[2][1]的值是()。
A:2
B:0
C:6
D:5
正确答案:【5】
2、单选题:以下数组定义中错误的是()。
A:int x[2][3]={0};
B:int x[2][3]={{1,2},{3,4},{5,6)};
C:int x[2][3]={1,2,3,4,5,6};
D:int x[][3]={{1,2,3},{4,5,6}};
正确答案:【int x[2][3]={{1,2},{3,4},{5,6)};】
3、单选题:以下能正确定义二维数组的是()。
A:int a[][3]={2*3};
B:int a[][3];
C:int a[2][3]={{1},{2},{3,4}}
D:int a[3][]={};
正确答案:【int a[][3]={2*3};】
4、单选题:有如下程序 #include <stdio.h>int main(){ int n[5]={0,0,0},i,k=2; for(i=0;i<k;i++) n[i]=n[i]+1; printf(“%d”,n[k]); return 0; }该程序的输出结果是( )。
A:1
B:2
C:不确定的值
D:0
正确答案:【0】
5、单选题:对一个含有100个元素的有序数组,用二分法查找某指定元素,最多需要比较()次?
A:8
B:5
C:6
D:7
正确答案:【7】
6、单选题:以下程序中函数Fun的功能是对b所指数组中的第m至第n个数据取累加和,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>int Fun( ______ ,int m,int n){ int i,s=0; for( ______;i<n;i++) s=s+b[i]; return _______;}int main(){ int x,a[]={1,2,3,4,5,6,7,8,9}; x=Fun(a,3,7); printf(“%d”,x); return 0;}
A:第2行: int b[]
第5行: i=m-1
第7行: s
B:第2行: int b[]
第5行: i=n-1
第7行: b[i]
C:第2行: int b
第5行: i=0
第7行: s
D:第2行: int b[]
第5行: i=1
第7行: i
正确答案:【第2行: int b[]
第5行: i=m-1
第7行: s
】
7、单选题:以下程序中函数Sort的功能是对a所指数组中的数据进行由大到小的排序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>void Sort(int a[],int n){ int i,j,t; for(i=0;_________;i++) for(________;j<n;j++) if(a[i]<a[j]) { t=a[i]; __________; a[j]=t; }} int main(){ int aa[10]={1,2,30,4,5,6,7,8,9,10},i; __________; for(i=0;i<10;i++) printf(“%d,”,aa[i]); printf(“”); return 0;}
A:第5行: i<n-1
第6行: j=i
第10行: a[i]=a[j]
第18行: Sort(aa[],10)
B:第5行: i<n-1
第6行: j=i+1
第10行: a[i]=a[j]
第18行: Sort(aa,10)
C:第5行: i<n
第6行: j=i+1
第10行: a[j]=a[i]
第18行: Sort(aa,10)
D:第5行: i<=n
j第6行: =i
第10行: a[i]=a[j]
第18行: Sort(10,aa)
正确答案:【第5行: i<n-1
第6行: j=i+1
如有任何疑问请及时联系QQ 50895809反馈