报名本机构合作学校,赠送复习资料,复习课程,确保录取。并且可以申请学校奖学金500元~1500元不等!
小测验
1、【单选题】#include stdio.h是( )。
A、编译预处理指令
B、语句
C、函数
D、程序入口
第一章单元测验
1、【单选题】通常把高级语言源程序翻译成目标程序的程序称为( )。
A、编译程序
B、链接程序
C、编辑程序
D、解释程序
2、【单选题】关于C语言,下面叙述不正确的是()。
A、不用编译可以直接运行。
B、既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序
C、既具有高级语言的特点,又具有汇编语言的特点
D、语法限制不太严格,例如,对数组下标越界不作检查
3、【单选题】程序的开发步骤中不包括( )。
A、编辑(编写代码)
B、编译链接
C、程序测试
D、撰写文档
4、【填空题】 zzuliOJ的1000:从今天开始入坑C语言 通过码
A、
5、【填空题】 zzuliOJ的1001: 整数a+b 通过码
A、
6、【填空题】zzuliOJ1002: 简单多项式求值 通过码
A、
小测验
1、【单选题】设有变量:int a = 012;则a对应的十进制数是( )。
A、12
B、8
C、10
D、0
2、【单选题】以下说法正确的是( )。
A、const常量有数据类型,宏常量没有数据类型。
B、const常量和宏常量都有数据类型
C、const常量和宏常量都没有数据类型
D、const常量有没有数据类型,宏常量有数据类型。
小测验
1、【单选题】C语言中最简单的数据类型包括( )。
A、整型、浮点型、逻辑型、字符型
B、整型、字符型、逻辑型
C、整型、浮点型、逻辑型
D、整型、 浮点型、字符型
scanf函数小测试
1、【单选题】给定:int a,b;scanf(%d%d, a, b);则以下哪些输入方式是正确的?
A、1 2
B、1,2
C、12
D、1、2
2、【多选题】给定:int a,b; 以下哪些scanf的使用是正确的?
A、scanf("%d", &a);scanf("%d", &b);
B、scanf("%d %d", &a, &b);
C、scanf("%d, %d", &a, &b);
D、scanf("%d %d", a, b);
小测验
1、【单选题】下式的运算结果为( )。10/3*3.0(如果结果是浮点数,以小数点后一位小数来表示)
A、10
B、10.0
C、9
D、9.0
2、【单选题】在赋值操作中,当赋值表达式左侧的变量的类型与右侧的表达式的类型不一致的时候,下面说法正确的是( )。
A、在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,会发生自动类型转换,赋值表达式的结果类型是赋值运算符左侧变量的类型。
B、在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,赋值表达式的结果类型是赋值运算符右侧表达式的类型。
C、在赋值操作中,只要赋值运算符左侧的变量的类型与右侧的表达式的类型不一致,就会发生数值溢出。
D、在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,要么发生数值溢出,要么发生数值精度的损失。
3、【单选题】若变量均已正确定义并赋值,以下合法的C语言赋值语句是()
A、x + n = i;
B、(x = y) = 5;
C、x = y = 5;
D、x=5=4+1;
浮点数小测验
1、【单选题】下列说法错误的是()。
A、浮点数并非真正意义上的实数,只是其在某种范围内的近似。
B、浮点数能精确表示的数字位数取决于这种类型的浮点数的有效数字位数。
C、使用更多的位来存储阶码,将会扩大浮点数的表数精度。
D、对于浮点数不能直接比较其是否相等,应该比较其是否近似相等。
第二单元测验
1、【单选题】关于定点数和浮点数的说法,下列说法错误的是()。
A、定点数表示数据的范围有限
B、用浮点数表示既有整数部分、又有小数部分的实数
C、浮点数表示的数即是数值的精确值
D、浮点数不能准确表示实数是因为小数部分由十进制转换为二进制时经常需要截断造成的
2、【单选题】以下哪种运算能从变量x中取得十进制最低位的数字( )。
A、x*10
B、x/10
C、x % 10
D、10/x
3、【单选题】以下哪个数字的值最大( )。
A、0x10
B、1e2
C、10
D、010
4、【单选题】设有变量定义:float x=2.5;double y=6.0;则表达式 (int)x / y的值为( )。(如果结果是浮点类型,用小数点后一位数字表示)
A、2
B、2.0
C、3
D、3.0
5、【判断题】变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
A、正确
B、错误
6、【判断题】变量被定义后没有赋值,其值不可以使用,是内存中残留的垃圾值。
A、正确
B、错误
7、【判断题】变量是在程序执行期间其值可以改变的量,必须先定义后使用。
A、正确
B、错误
8、【判断题】当赋值语句右边表达式类型与左边变量类型不一致时,以右边表达式的值作为赋值表达式的值。
A、正确
B、错误
9、【填空题】zzuliOJ1003:两个整数的四则运算 通过码
A、
10、【填空题】zzuliOJ1004:三位数的数位分离 通过码
A、
11、【填空题】zzuliOJ1005:整数幂 通过码
A、
12、【填空题】zzuliOJ1006:求等差数列的和 通过码
A、
13、【填空题】zzuliOJ1007:鸡兔同笼 通过码
A、
14、【填空题】zzuliOJ1008:美元和人民币 通过码
A、
15、【填空题】zzuliOJ1009:求平均分 通过码
A、
16、【填空题】zzuliOJ1010:求圆的周长和面积 通过码
A、
17、【填空题】zzuliOJ1011:圆柱体表面积 通过码
A、
18、【填空题】zzuliOJ1012:求绝对值 通过码
A、
19、【填空题】zzuliOJ1013:求两点间距离 通过码
A、
20、【填空题】zzuliOJ1014:求三角形的面积 通过码
A、
21、【填空题】zzuliOJ1015:计算时间间隔 通过码
A、
22、【填空题】zzuliOJ1015:银行利率 通过码
A、
小练习-不计分
1、【单选题】以下哪种运算能从变量x中取得十进制最低位的数字( )。
A、x*10
B、x/10
C、x % 10
D、10/x
2、【单选题】以下哪个数字的值最小( )。
A、0x10
B、1e1
C、10
D、010
3、【单选题】设有变量定义:float x=2.5;double y=5.0;则表达式 (int)x / y的值为( )。(若为浮点类型,则用小数点后一位数字表示)
A、2
B、2.5
C、3
D、2.0
小测验
1、【单选题】int x = 2, y =5;int max;if(x y) ; max = x;else max = y;对于以上代码段,如下说法正确的是( )。
A、有编译错误,指出else子句也没有可匹配的if.
B、无语法错误,但结果不正确。
C、无语法错误,但结果不正确。
D、有编译错误,指出if(x > y)之后不能加分号
2、【单选题】int x = 7, y =5;int max = x;if(y max) ; max = y;printf(%d\n, max);对于以上代码段,如下说法正确的是( )。
A、有编译错误,指出if(x > y)之后不能加分号。
B、无语法错误,输出为7。
C、无语法错误,但有逻辑错误,输出为5。
D、无语法错误,输出为5或者7。
小测验
1、【单选题】下列表达式中,值为0的表达式是( )。
A、3 != 3 > 4
B、6 < 5< 4
C、6 > 5 > 4
D、3 > 4 == 0
小测验
1、【单选题】以下程序段的输出结果为( )。int x = 2, y = 5, z;char op = '+';switch(op){ case '+' : z = x + y; case '-' : z = x - y;}printf(%d\n, z);
A、7
B、-3
C、编译错误
D、7-3
2、【单选题】有如下程序,若运行中从键盘输入2,程序的输出为( )。#includestdio.hint main(void){ int x, y; scanf(%d, x); if(x 0) y = 2*x; if( x == 0) y = 1; else y = x*x + 1; printf(%d\n, y);}
A、1
B、4
C、5
D、3
小测验
1、【单选题】下列语句中,不能实现两数交换的是( )。
A、a = b, b = a;
B、b = a * b, a = b / a, b = b / a;
C、t = a, a = b, b = t;
D、a = a + b, b = a – b, a = a – b;
小测验
1、【单选题】我们知道,用浮点数来表示实数可能会有精度损失, 对于double类型的数据,常用一个常量eps = 1e-10进行精度控制。两个浮点数的差的绝对值在这个范围内,我们就会认为他们是相等的。如下哪个表达式能正确判断两个double类型的变量x和y是相等的。
A、x == y
B、fabs(x-y) < 1e-10
C、!fabs(x-y)
D、fabs(x) - fabs(y) < 1e-10
小测验
1、【单选题】从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。下面给出的选项中,哪个是错误的。#includestdio.h#includectype.h int main() { char c; printf(Please input a character:); scanf(%c,c); if(c ='A'c = 'Z') c =_______________; printf(%c\n,c); return 0; }
A、c = c + 32
B、c = c - 'A' + 'a'
C、c = tolower(c)
D、c = c - 32
小测验
1、【单选题】程序功能: 从键盘输入一个字符,判断该字符是否是字母、数字字符或其他字符。分别输出对应的提示信息: 如果该字符是字母,则输出“alpha”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。程序代码如下,为实现上述功能,请选择合适的代码填写在第10行标记处。#includestdio.h#includectype.h int main(void){ char ch; scanf (%c, ch); if(isalpha(ch)) //判断是否是英文字母 printf (alpha\n); ________________ //判断是否是数字 printf(digit\n); else printf(other\n); return 0;}
A、if(isdigit(ch))
B、else if(isdigit(ch))
C、else if(ch >= 0 && ch <= 9)
D、if('0' <= ch <= '9')
小测验
1、【单选题】判断年份y为闰年的表达式为( )。
A、y%4 == 0
B、y%4 == 0 && y % 100 != 0
C、(y%4 == 0) || (y%400 == 0 && y % 100 != 0)
D、(y%4 == 0 && y % 100 != 0) || (y%400 == 0)
小测验
1、【单选题】有以下程序段:char c1 = '1', c2 = '2'; c1 = getchar();c2 = getchar(); putchar(c1);putchar(c2); 运行时从键盘上输入:a↙ 后,以下叙述中正确的是( )。
A、变量c1被赋予字符a,c2中将无确定值
B、变量c1被赋予字符a,c2中仍是原有字符'2'
C、变量c1被赋予字符a,c2被赋予换行符'\n'
D、程序将等待用户输入第2个字符
2、【单选题】执行下列程序,k输入为1时的输出结果是( )。#include stdio.hint main(){ int k; scanf(%d,k); switch(k) { case 1: printf(%d,k); k *= 2; case 2: printf(%d,k); k *= 2; case 3: printf(%d,k); k *= 2; default: printf(false); } return 0;}
A、12
B、124
C、248
D、124false
第三章单元测验
1、【单选题】判断年份y为闰年的表达式为( )。
A、y%4 == 0
B、y%4 == 0 && y % 100 != 0
C、(y%4 == 0) || (y%400 == 0 && y % 100 != 0)
D、(y%4 == 0 && y % 100 != 0) || (y%400 == 0)
2、【单选题】以下代码段,作者本意是如果xy,则交换二者的值,但由于作者的笔误,没有对if的控制范围加{},请分析以下程序段的输出结果( )。int x = 2, y = 5;
int tmp;
if(x y)
tmp = x;
x = y;
y = tmp;
printf(%d %d\n, x, y);
A、5和一个垃圾值
B、2和一个垃圾值
C、2
D、5
3、【单选题】int x = 7, y =5;
int max = x;
if(y max) ;
max = y;
printf(%d\n, max);以上代码段,作者本意是输出x和y的最大值,但由于作者的笔误,在if的括号后多写了一个分号,如下说法正确的是( )。
A、有编译错误,指出if(y > max)之后不能加分号。
B、无语法错误,输出为7。
C、无语法错误,但if之后的分号会造成逻辑上的错误,输出为5。
D、无语法错误,输出为5或者7。
4、【单选题】int x = 2, y =5;
int max;
if(x y) ;
max = x;
else
max = y;以上代码段,作者本意是输出x和y的最大值,但由于作者的笔误,在if的括号后多写了一个分号,如下说法正确的是( )。
A、有编译错误,指出else子句也没有可匹配的if.
B、无语法错误,但结果不正确。
C、无语法错误,结果也正确。
D、有编译错误,指出if(x > y)之后不能加分号
5、【单选题】#includestdio.h
int main(void)
{
int a, b;
scanf(%d %d, a, b);
printf(%d\n, a b ? a : b);
return 0;
}从键盘输入以下数据:3回车5回车则程序输出为( )。
A、3
B、5
C、0
D、垃圾值
6、【单选题】从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。下面给出的选项中,哪个是错误的。#includestdio.h
#includectype.h
int main()
{
char c;
printf(Please input a character:);
scanf(%c,c);
if(c ='A'c = 'Z')
c =_______________;
printf(%c\n,c);
return 0;
}
A、c = c + 32
B、c = c - 'A' + 'a'
C、c = tolower(c)
D、c = c - 32
7、【单选题】我们知道,用浮点数来表示实数可能会有精度损失, 对于double类型的数据,常用一个常量eps = 1e-10进行精度控制。两个浮点数的差的绝对值在这个范围内,我们就会认为他们是相等的。如下哪个表达式能正确判断两个double类型的变量x和y是相等的。
A、x == y
B、fabs(x-y) < 1e-10
C、!fabs(x-y)
D、fabs(x) - fabs(y) < 1e-10
8、【单选题】程序功能: 从键盘输入一个字符,判断该字符是否是字母、数字字符或其他字符。分别输出对应的提示信息: 如果该字符是字母,则输出“alpha”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。程序代码如下,为实现上述功能,请选择合适的代码填写在第10行标记处。#includestdio.h
#includectype.h
int main(void)
{
char ch;
scanf (%c, ch);
if(isalpha(ch)) //判断是否是英文字母
printf (alpha\n);
________________ //判断是否是数字
printf(digit\n);
else //其它字符
printf(other\n);
return 0;
}
A、if( isdigit(ch) )
B、else if( isdigit(ch) )
C、else if( ch >= 0 && ch <= 9 )
D、if( '0' <= ch <= '9' )
9、【单选题】下列语句中,不能实现两数交换的是( )。
A、a = b, b = a;
B、b = a * b, a = b / a, b = b / a;
C、t = a, a = b, b = t;
D、a = a + b, b = a – b, a = a – b;
10、【单选题】下列说法错误的是( )。
A、若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
B、case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
C、每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
D、若case后面的语句省略不写,则表示它什么也不做,直接跳出switch。
11、【单选题】以下程序运行后的输出结果是( )。#include stdio.h
int main()
{
int a = 5, b = 4, c = 3, d;
d = (a b c);
printf(%d\n, d);
return 0;
}
A、0
B、1
C、5
D、3
12、【单选题】执行下列程序,k输入为2时的输出结果是( )。#include stdio.h
int main()
{
int k;
scanf(%d,k);
switch(k)
{
case 1: printf(%d,k);
case 2: printf(%d,k);
case 3: printf(%d,k);
default: printf(Full!);
}
return 0;
}
A、22
B、23
C、Full!
D、22Full!
13、【单选题】有以下程序段:char c1='1',c2='2';
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);运行时从键盘上输入:a↙ 后,以下叙述中正确的是( )。
A、变量c1被赋予字符a,c2中将无确定值。
B、变量c1被赋予字符a,c2中仍是原有字符'2'。
C、变量c1被赋予字符a,c2被赋予换行符'\n'。
D、程序将等待用户输入第2个字符。
14、【填空题】zzuliOJ1019:公园门票 通过码
A、
15、【填空题】zzuliOJ1021:三个整数的最大值 通过码
A、
16、【填空题】zzuliOJ1022:三整数排序 通过码
A、
17、【填空题】zzuliOJ1023:大小写转换 通过码
A、
18、【填空题】zzuliOJ1025:最大字符 通过码
A、
19、【填空题】zzuliOJ1026:字符类型判断 通过码
A、
20、【填空题】zzuliOJ1027:判断水仙花数 通过码
A、
21、【填空题】zzuliOJ1028:I love 闰年! 通过码
A、
22、【填空题】zzuliOJ1033: 五级制成绩 通过码
A、
23、【填空题】zzuliOJ1037:四则运算 通过码
A、
while循环小测试
1、【单选题】以下程序的输出结果是( )int main()
{
int num = 1;
while(num = 2)
{
num++;
printf(%d\n,num);
}
}
A、3
B、123
C、12
D、23
for语句小测试
1、【单选题】for(i=0; i=10; i++);循环结束后,i的值是()
A、9
B、10
C、11
D、12
逗号表达式小测试
1、【单选题】关于逗号表达式,以下说法错误的是( )。
A、逗号运算符也称为顺序求值运算符,由逗号运算符构成的表达式称为逗号表达式。
B、多数情况下,我们并不使用整个逗号表达式的值,主要用它来顺序求得到各个子表达式的值。
C、逗号表达式主要用在循环语句中同时对多个变量赋初值等。
D、在逗号表达式中,其第一个表达式的值就是整个逗号表达式的值。
第四章单元测试(1)
1、【单选题】要求通过 while 循环不断输出字符,当读入字母 N 时结束循环。若变量已正确定义,下列程序段正确的是( )。
A、while ((ch = getchar()) == 'N')
printf("%c", ch);
B、while (ch = getchar() == 'N')
printf("%c", ch);
C、while ((ch = getchar()) != 'N')
printf("%c", ch);
D、while (ch = getchar() != 'N')
printf("%c", ch);
2、【单选题】执行以下循环语句时,下列说法正确的是()。x = -1;
do
{
x = x * x;
} while (x == 0);
A、循环体将执行一次
B、循环体将执行两次
C、循环体将执行无限次
D、系统将提示有语法错误
3、【单选题】请问下面哪个程序段会造成死循环?
A、for(n=0;;n++)
if(n>10)break;
B、n=0;
do{
n++;
}while(n<=0);
C、n=10;
while(n>0) ;
n--;
D、n=0;
while(n)
n++;
4、【单选题】下列说法错误的是()。
A、逗号运算符也称为顺序求值运算符,由逗号运算符构成的表达式称为逗号表达式。
B、多数情况下,我们并不使用整个逗号表达式的值,主要用它来顺序求得到各个子表达式的值。
C、逗号表达式主要用在循环语句中同时对多个变量赋初值等。
D、在逗号表达式中,其第一个表达式的值就是整个逗号表达式的值。
5、【单选题】for(i=0;i10;i++);循环结束后,i的值是()
A、9
B、10
C、11
D、12
6、【单选题】以下程序的输出结果是( )int main()
{
int i;
for(i=4;i=10;i++)
{
if(i%3==0) continue;
printf(%d,i);
}
return 0;
}
A、45
B、457810
C、69
D、678910
7、【单选题】以下程序的输出结果是( )int main()
{
int num = 0;
while(num=2)
{
num++;
printf(%d\n,num);
}
}
A、1
B、12
C、123
D、1234
8、【单选题】程序运行后的输出结果是#include stdio.h
int main()
{
int i;
for(i=0;i3;i++)
switch(i)
{
case 0: printf(%d,i);
case 2: printf(%d,i);
default: printf(%d,i);
}
return 0;
}
A、000122
B、02
C、012
D、021021
9、【单选题】若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( )。
A、i=1;
p=1;
do {
p*=i;
i++;
} while ( i<=5 );
B、for(i=1,p=1;i<=5;i++) p*=i;
C、i=1;
p=1;
while ( i<=5 )
{
p*=i;
i++;
}
D、for( i=1; i<=5; i++ )
{
p=1;
p*=i;
}
10、【单选题】以下程序的功能是计算:s= 1+1/2+1/3+……+1/10, 程序运行后输出结果错误,导致错误结果的程序行是( )。(如果不能凭经验看出,建议调试方法1:在循环中加入printf,输出中间结果;方法2:单行执行程序,观察运行中的变量变化)#include stdio.h
int main()
{
int n;
double s;
s = 1.0;
for(n=10; n1; n--)
{
s = s + 1/n;
}
printf(%6.4f\n, s);
return 0;
}
A、for(n=10; n>1; n--)
B、s = 1.0;
C、printf("%6.4f\n", s);
D、s = s + 1/n;
11、【填空题】1040 数列求和1 的通过码
A、
12、【填空题】1043 最大值 的通过码
A、
13、【填空题】1046 奇数的乘积 的通过码
A、
14、【填空题】1048 阶乘表 的通过码
A、
15、【填空题】1050 阶乘的累加和 通过码
A、
16、【填空题】1051 平方根的和 通过码
A、
17、【填空题】1053 正弦函数 通过码
A、
18、【填空题】1055 兔子繁殖问题 通过码
A、
19、【填空题】1057 素数判定 通过码
A、
20、【填空题】1064 加密字符 通过码
A、
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。