内容正文:
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第19卷为专业核心模块训练卷,按《C语言》中"C语言卷6——if语句与选择结构的嵌套"范围和要求编写。具体内容为:掌握if语句;理解选择结构的嵌套。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷6——if语句与选择结构的嵌套)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. if语句的基本格式是( )
A.if 条件 then 语句 B.if(条件) 语句 C.if 条件: 语句 D.if (条件) then 语句
【答案】B
【解析】C语言if语句格式为if(条件) 语句。
2. 下列if语句语法正确的是( )
A.if x>0 { } B.if(x>0); { } C.if(x>0) { } D.if x>0 then { }
【答案】C
【解析】if语句条件必须放在括号中,if(x>0) { }语法正确。
3. if...else语句中,else子句在( )时执行
A.条件为真(非0) B.条件为假(0) C.任何时候都执行 D.条件不确定时执行
【答案】B
【解析】else子句在if条件为假(0)时执行。
4. 下列关于if语句,正确的是( )
A.if语句可以没有else子句 B.if语句必须包含else子句 C.if语句条件不能是表达式 D.if语句不能嵌套使用
【答案】A
【解析】if语句可以只有if部分,else子句是可选的。
5. 嵌套if语句中,else子句与( )匹配
A.最外层的if语句 B.最近的未匹配的if语句 C.第一个if语句 D.所有if语句
【答案】B
【解析】else子句与最近的未匹配的if语句匹配(就近原则)。
6. 下列能正确判断变量a为偶数的是( )
A.if(a/2==0) B.if(a%2==0) C.if(a//2==0) D.if(a mod 2==0)
【答案】B
【解析】a%2==0可以判断a是否为偶数。
7. 想要判断a介于1到100之间(含1和100),条件表达式正确的是( )
A.if(1<=a<=100) B.if(a>=1 && a<=100)
C.if(a>=1 || a<=100) D.if(1<=a&&<=100)
【答案】B
【解析】判断a在1到100之间应使用逻辑与:a>=1 && a<=100。
8. if语句的条件表达式值为____时表示真
A.0 B.非0值 C.1 D.大于0的整数
【答案】B
【解析】C语言中非0值表示真,0表示假。
9. 下列程序段输出结果是( )
if(5>3)
printf("A");
else
printf("B");
A.A B.B C.AB D.编译错误
【答案】A
【解析】5>3为真(非0),执行printf("A"),输出A。
10. 下列关于条件判断,正确的是( )
A.if(1)表示条件永远为真 B.if(0)表示条件为真
C.if(x=5)是判断x是否等于5 D.if(x)只能判断x是否为正数
【答案】A
【解析】if(1)中1是非0值,条件永远为真。注意if(x=5)是赋值不是判断。
11. 下列与if(a>b) max=a; else max=b; 等价的是( )
A.max=(a>b)?a:b; B.max=(a>b)?b:a; C.max=a>b?a:b; D.以上都不对
【答案】A
【解析】条件表达式max=(a>b)?a:b;与if...else语句功能等价。
12. if语句中,若语句体包含多条语句,必须使用( )
A.圆括号() B.方括号[] C.花括号{} D.尖括号<>
【答案】C
【解析】if语句若要执行多条语句,必须用花括号{}构成复合语句。
13. 下列关于嵌套if,正确的是( )
A.嵌套if不能超过2层 B.嵌套if没有固定层数限制 C.嵌套if不能使用else子句 D.嵌套if只能写在else子句中
【答案】B
【解析】if语句可以任意层数嵌套,C语言没有固定限制。
14. 想要判断字符变量c是数字字符('0'~'9'),正确的是( )
A.if('0'<=c<='9') B.if(c>='0' && c<='9')
C.if(c in '0'..'9') D.if(isdigit(c))
【答案】B
【解析】判断c是否为数字字符应使用c>='0' && c<='9'。
15. 若想判断a等于b,应该用( )
A.a=b(赋值) B.a==b(关系等于) C.a===b(严格等于) D.a eq b
【答案】B
【解析】==是关系等于运算符,=是赋值运算符。
16. if(x)语句中,当x为____时条件为假
A.1 B.0 C.-1 D.所有非0值
【答案】B
【解析】C语言中0表示假,非0表示真。
17. 下列程序段执行后y的值是( )
int x=2,y=3;
if(x>1) y=5;
else y=10;
A.2 B.3 C.5 D.10
【答案】C
【解析】x=2>1为真,执行y=5,y的值变为5。
18. 下列关于if...else配对,正确的是( )
A.else与最外层if配对 B.else与最近的未配对if配对 C.else可以任意配对 D.else必须有配对的花括号
【答案】B
【解析】else与最近的未配对if语句配对(就近原则)。
19. 下列能正确表示a不等于0的条件是( )
A.a=0 B.a==0 C.a!=0 D.a~=0
【答案】C
【解析】!=是不等于关系运算符。
20. 在C语言中,if语句的嵌套可以出现在( )
A.只能出现在if子句中 B.只能出现在else子句中 C.if子句和else子句中都可以 D.不能进行嵌套
【答案】C
【解析】if语句可以嵌套,嵌套可以出现在if子句或else子句中。
二、判断题(共10题,每题1分,共10分)
21. if语句的条件必须放在圆括号中( )
【答案】√
【解析】C语言if语句条件必须放在圆括号()中。
22. if语句可以没有else子句( )
【答案】√
【解析】else子句是可选的,if语句可以只有if部分。
23. else子句可以与任意一个if语句配对( )
【答案】×
【解析】else遵循就近原则,与最近的未配对if配对。
24. C语言中,0表示假,非0表示真( )
【答案】√
【解析】C语言用0表示假,非0值表示真。
25. if(x=5)是判断x是否等于5( )
【答案】×
【解析】if(x=5)是赋值操作(将5赋给x),不是判断。判断相等应使用==。
26. if语句若要执行多条语句,必须使用花括号构成复合语句( )
【答案】√
【解析】if后只有一条语句可以不加花括号,多条语句必须用花括号{}构成复合语句。
27. 嵌套if语句没有层数限制( )
【答案】√
【解析】if语句可以任意层数嵌套,C语言没有固定限制。
28. 条件表达式可以替代简单的if...else语句( )
【答案】√
【解析】简单的if...else语句可以用条件表达式替代。
29. if语句不能进行多级选择( )
【答案】×
【解析】if语句可以通过嵌套实现多级选择,也可以用else if实现多分支。
30. 在if语句中,if和else后面都不能直接跟分号( )
【答案】×
【解析】if(条件);是合法的,表示如果条件为真则执行空语句。
三、填空题(共10空,每空2分,共20分)
31. if语句的基本格式是:if(____) 语句。
【答案】条件(表达式)
【解析】if语句需要圆括号中的条件表达式。
32. if...else语句中,else子句在条件为____(填真或假)时执行。
【答案】假(0)
【解析】else子句在if条件为假(0)时执行。
33. C语言中,表示不等于的关系运算符是____。
【答案】!=
【解析】!=是不等于关系运算符。
34. 嵌套if语句中,else子句与最____(填内或外)的未配对if语句配对。
【答案】近
【解析】else配对遵循就近原则。
35. 若if语句后要执行多条语句,必须使用____将这些语句括起来。
【答案】花括号({})
【解析】多条语句需要用花括号{}构成复合语句。
36. 判断整数a能否被3整除的条件是:a____3==0。
【答案】%(求余)
【解析】%是求余运算符,a%3==0表示a能被3整除。
37. 在C语言中,____值表示真,____值表示假。
【答案】非0、0
【解析】C语言中非0表示真,0表示假。
38. 条件表达式 条件?表达式1:表达式2 可以替代简单的____语句。
【答案】if...else
【解析】条件表达式功能上等价于简单的if...else语句。
39. 想要判断变量a大于0且不等于5,条件表达式为:a>0 ____ a!=5。
【答案】&&(逻辑与)
【解析】两个条件同时成立使用逻辑与&&连接。
40. if语句的嵌套可以出现在if子句和____子句中。
【答案】else
【解析】if嵌套可以出现在if子句和else子句中。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a=15,b=20,c=10;
int max;
if(a>b)
{
if(a>c) max=a;
else max=c;
}
else
{
if(b>c) max=b;
else max=c;
}
printf("max=%d
",max);
return 0;
}
【答案】max=20
【解析】
1.首先判断 a>b,15>20 不成立,执行 else 分支;
2.else 分支内判断 b>c,20>10 成立,将 b 赋值给 max;
3.最终 max=20,输出结果 max=20。
42. 程序填空题:以下程序根据成绩输出等级并统计各等级人数。请将①~④表示的内容填写完整。
#include <stdio.h>
int main()
{
int score,a=0,b=0,c=0,d=0;
scanf("%d",&score);
if(①____)
a++;
else if(score>=80)
b++;
else if(②____)
c++;
else
③____;
printf("A:%d B:%d C:%d D:%d
",④____);
return 0;
}
【答案】① score>=90 ② score>=60 ③ d++ ④ a,b,c,d
【解析】
① 90 分及以上为 A 等级,分数满足条件则 A 类人数加 1;
② 60 分及以上为 C 等级,填写分数判断条件;
③ 低于 60 分为 D 等级,D 类人数自增 1;
④ 按照输出顺序依次输出 A、B、C、D 四个统计变量。
43. 文件prime.txt中存放一个正整数(位数≥4)。用削峰法删除2个数字,使新数为素数且尽可能大。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define DEL 2
int is_prime(int n);
int max_prime(char strn[],int deln);
int main()
{
char strn[30];
int result;
FILE *fp=fopen("prime.txt","r");
fscanf(fp,"%s",strn);
fclose(fp);
result=max_prime(strn,DEL);
if(result>0)printf("最大素数:%d
",result);
else printf("不存在");
return 0;
}
int is_prime(int n)
{
int i;
if(n<2)return 0;
for(i=2;i<=sqrt(n);i++)
if(①)return 0;
return 1;
}
int max_prime(char strn[],int deln)
{
int lenth=strlen(strn);
int i,k,dn,maxp=-1,num;
for(dn=1;dn<=deln;dn++)
{
i=0;
while(strn[i]<=strn[i+1]&&i<lenth-dn)
i++;
for(k=i;k<lenth-dn;k++)
②;
}
num=0;
for(k=0;k<lenth-deln;k++)
num=num*10+strn[k]-'0';
if(③&&num>maxp)maxp=num;
return maxp;
}
【答案】① n% i==0 ② strn [k]=strn [k+1] ③ is_prime (num)
【解析】
① 判断素数:如果 n 能被 i 整除,说明不是素数,返回 0;
② 将后一位字符向前覆盖,实现删除指定位置数字的功能;
③ 调用函数判断数字是否为素数,满足条件则更新最大值。
学科网(北京)股份有限公司
$
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第19卷为专业核心模块训练卷,按《C语言》中"C语言卷6——if语句与选择结构的嵌套"范围和要求编写。具体内容为:掌握if语句;理解选择结构的嵌套。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷6——if语句与选择结构的嵌套)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. if语句的基本格式是( )
A.if 条件 then 语句 B.if(条件) 语句 C.if 条件: 语句 D.if (条件) then 语句
2. 下列if语句语法正确的是( )
A.if x>0 { } B.if(x>0); { } C.if(x>0) { } D.if x>0 then { }
3. if...else语句中,else子句在( )时执行
A.条件为真(非0) B.条件为假(0) C.任何时候都执行 D.条件不确定时执行
4. 下列关于if语句,正确的是( )
A.if语句可以没有else子句 B.if语句必须包含else子句 C.if语句条件不能是表达式 D.if语句不能嵌套使用
5. 嵌套if语句中,else子句与( )匹配
A.最外层的if语句 B.最近的未匹配的if语句 C.第一个if语句 D.所有if语句
6. 下列能正确判断变量a为偶数的是( )
A.if(a/2==0) B.if(a%2==0) C.if(a//2==0) D.if(a mod 2==0)
7. 想要判断a介于1到100之间(含1和100),条件表达式正确的是( )
A.if(1<=a<=100) B.if(a>=1 && a<=100)
C.if(a>=1 || a<=100) D.if(1<=a&&<=100)
8. if语句的条件表达式值为____时表示真
A.0 B.非0值 C.1 D.大于0的整数
9. 下列程序段输出结果是( )
if(5>3)
printf("A");
else
printf("B");
A.A B.B C.AB D.编译错误
10. 下列关于条件判断,正确的是( )
A.if(1)表示条件永远为真 B.if(0)表示条件为真
C.if(x=5)是判断x是否等于5 D.if(x)只能判断x是否为正数
11. 下列与if(a>b) max=a; else max=b; 等价的是( )
A.max=(a>b)?a:b; B.max=(a>b)?b:a; C.max=a>b?a:b; D.以上都不对
12. if语句中,若语句体包含多条语句,必须使用( )
A.圆括号() B.方括号[] C.花括号{} D.尖括号<>
13. 下列关于嵌套if,正确的是( )
A.嵌套if不能超过2层 B.嵌套if没有固定层数限制 C.嵌套if不能使用else子句 D.嵌套if只能写在else子句中
14. 想要判断字符变量c是数字字符('0'~'9'),正确的是( )
A.if('0'<=c<='9') B.if(c>='0' && c<='9')
C.if(c in '0'..'9') D.if(isdigit(c))
15. 若想判断a等于b,应该用( )
A.a=b(赋值) B.a==b(关系等于) C.a===b(严格等于) D.a eq b
16. if(x)语句中,当x为____时条件为假
A.1 B.0 C.-1 D.所有非0值
17. 下列程序段执行后y的值是( )
int x=2,y=3;
if(x>1) y=5;
else y=10;
A.2 B.3 C.5 D.10
18. 下列关于if...else配对,正确的是( )
A.else与最外层if配对 B.else与最近的未配对if配对 C.else可以任意配对 D.else必须有配对的花括号
19. 下列能正确表示a不等于0的条件是( )
A.a=0 B.a==0 C.a!=0 D.a~=0
20. 在C语言中,if语句的嵌套可以出现在( )
A.只能出现在if子句中 B.只能出现在else子句中 C.if子句和else子句中都可以 D.不能进行嵌套
二、判断题(共10题,每题1分,共10分)
21. if语句的条件必须放在圆括号中( )
22. if语句可以没有else子句( )
23. else子句可以与任意一个if语句配对( )
24. C语言中,0表示假,非0表示真( )
25. if(x=5)是判断x是否等于5( )
26. if语句若要执行多条语句,必须使用花括号构成复合语句( )
27. 嵌套if语句没有层数限制( )
28. 条件表达式可以替代简单的if...else语句( )
29. if语句不能进行多级选择( )
30. 在if语句中,if和else后面都不能直接跟分号( )
三、填空题(共10空,每空2分,共20分)
31. if语句的基本格式是:if(____) 语句。
32. if...else语句中,else子句在条件为____(填真或假)时执行。
33. C语言中,表示不等于的关系运算符是____。
34. 嵌套if语句中,else子句与最____(填内或外)的未配对if语句配对。
35. 若if语句后要执行多条语句,必须使用____将这些语句括起来。
36. 判断整数a能否被3整除的条件是:a____3==0。
37. 在C语言中,____值表示真,____值表示假。
38. 条件表达式 条件?表达式1:表达式2 可以替代简单的____语句。
39. 想要判断变量a大于0且不等于5,条件表达式为:a>0 ____ a!=5。
40. if语句的嵌套可以出现在if子句和____子句中。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a=15,b=20,c=10;
int max;
if(a>b)
{
if(a>c) max=a;
else max=c;
}
else
{
if(b>c) max=b;
else max=c;
}
printf("max=%d
",max);
return 0;
}
42. 程序填空题:以下程序根据成绩输出等级并统计各等级人数。请将①~④表示的内容填写完整。
#include <stdio.h>
int main()
{
int score,a=0,b=0,c=0,d=0;
scanf("%d",&score);
if(①____)
a++;
else if(score>=80)
b++;
else if(②____)
c++;
else
③____;
printf("A:%d B:%d C:%d D:%d
",④____);
return 0;
}
43.文件prime.txt中存放一个正整数(位数≥4)。用削峰法删除2个数字,使新数为素数且尽可能大。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define DEL 2
int is_prime(int n);
int max_prime(char strn[],int deln);
int main()
{
char strn[30];
int result;
FILE *fp=fopen("prime.txt","r");
fscanf(fp,"%s",strn);
fclose(fp);
result=max_prime(strn,DEL);
if(result>0)printf("最大素数:%d
",result);
else printf("不存在");
return 0;
}
int is_prime(int n)
{
int i;
if(n<2)return 0;
for(i=2;i<=sqrt(n);i++)
if(①)return 0;
return 1;
}
int max_prime(char strn[],int deln)
{
int lenth=strlen(strn);
int i,k,dn,maxp=-1,num;
for(dn=1;dn<=deln;dn++)
{
i=0;
while(strn[i]<=strn[i+1]&&i<lenth-dn)
i++;
for(k=i;k<lenth-dn;k++)
②;
}
num=0;
for(k=0;k<lenth-deln;k++)
num=num*10+strn[k]-'0';
if(③&&num>maxp)maxp=num;
return maxp;
}
学科网(北京)股份有限公司
$