C练习题_13
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上
- 以下叙述不正确的是()。
A.C程序中,语句之间必须用分号分隔。
B.C程序中,多行语句可以写在一行上。
C.C程序中,可以不必包含主函数。
D.一个C程序,可以由多个函数组成。
- ()是合法的用户自定义标识符。
A.b-b
B. float
C.
D. _isw
- 用()三种基本控制结构,就可以编写任何复杂的计算机程序
A.VO,转移,循环
B.转子(程序),返回,处理
C.顺序,选择,循环
D.输入,输出,处理
4·以下选项中,不能用做数据常量的是()。
A.01115
B.0X118
C. 1.5e1.5
D.115L
5.定义char a;则以下赋值语句不恰当的是()
A. a= 65;
B. a= “A”;
C. a = ‘165’;
D.a=6+‘A’;
6.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第2位四舍五人的是()。
A.x=x10+0.5/10.0
B.x=(x10+0.5)/10.0
C. x=(int)(x*10+0.5)/10.0
D.x=(x/10+0.5)/10.0
7.下列选项中,值为1的表达式是()。
A. 1-‘0’
B. 1-‘\0’
C. ‘l’-0
D. ‘\0’-‘0’
- 设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()
A.1
B.2
C.3
D.4
9.设a=3,b=2,则表达式ab>>2的值的二进制表示为()。
A. 00000110
B.00000011
C.00000100
D.00000010
10.字符串"\“ABC”\"的长度是()
A. 11
B.7
C.5
D.3
11.设有定义:int a=2,b=4,c=5,以下语句中执行效果与其它三个不同的是()。
A. if(a>b) c=a,a=b,b=c;
B. if(a>b) (c=a,a=b,b=c;)
C. if(a>b) c=a;a=b;b=c;
D. if(a>b) (c=a;a=b;b=c;)
12.设i,x都是int类型,则下面的for循环体可执行多少次?for (i=0, x=0;i<=9 &&x!=876;i++)printf(“*”);
A.9次
B.10次
C. 876次
D.无限循环
13.请读程序:
#include<stdio.h>
int 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);
}
return 0;
}
则上面程序的输出结果是()
A. 28
B. 27
C. 42
D.41
14.以下能正确定义二维数组的语句是()。
A. int a00;
B. int a][3];
C. int a[2]0:
D. int a[2][3];
15,如果变量定义如下int i,j, tab[3][4):,则正确的语句是()
A. tab[0][]=0;
B. tab=100;
C. for(i = 1; i <= 3; i++){
for(j= 1; i <= 4;j++){
scanf(“%d “, &a[i]li);
}}
D. for(i= 0; i<3; i++){
for(j = 0; j < 4;j++){
printf(”%4d", tab[i][i);
}
printf(“n”); }
16.文件中定义的全局变量的作用域为()
A.本程序全部范围
B.本文件全部范围
C.函数内全部范围
D.从定义该变量的位置开始到本文件结束
17.有如下函数调用语句:func(recl, rec2+rec3, (rec4, rec5));则该函数调用语句中,含有的实参个数是()
A.3
B.4
C.5
D.有语法错
18.若有定义 char str]=(“Python”, “SQL”,“JAVA”, “PHP”, “C++”);则表达式stfl]> *st3]比较的是()
A.字符P和字符J
B.字符串 SQL和字符串 PHP
C.字符串 Python 和字符串JAVA
D.字符S和字符P
19.关于宏的叙述中正确的是()。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数类型应与宏定义一致
C.宏替换不占用运行时间,但占用编译时间
D.宏调用此函数调用耗费时间
20.C语言中结构类型变量在程序执行期间()。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________
#include <stdio.h>
void main() {
int num = 0;
while (num <= 6) {
num++;
if (num % 3 == 0) {
break;
}
printf("%d#", num);
}
}
2________
#include <stdio.h>
void swap(int x, int y)
{int t; t = x; x = y; y = t; }
void main()
{
int a = 3, b=5;
swap(a, b);
printf("a=%d, b=%d\n", a, b);
}
3________
#include <stdio.h>
void main()
{
unsigned x=23;
int p=2,n=2;
printf("%uln",(x>>(p+1-n))&~(~0<<n);
}
4______________
#include <stdio.h>
int f(int a){return a%2;}
int main()
{
int s(8)=(1,3,5,2,4,6),d=0,i;
for(i=0;f(s[i]);i++)
d+=s[i];
printf("%d\n",d);
return 0;
5___________
#include <stdio.h>
#define PR(ar) printf("%d ", ar)
void main() {
int a[] = {1, 3, 5, 7, 9, 11, 13, 15};
int *p = a + 5;
for (int j = 3; j; j--) {
switch (j) {
case 1:
case 2:
PR(*p++);
break;
case 3:
PR(*(--p));
break;
}
}
}
三、程序填空题(共35分。请将答案填写在答题纸的相应位置上。
- 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1 至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至 11 报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。
#include <stdio.h>
int main()
{
int x;
for (_______)
{
if(_______)
{
printf(" x = %d\n", x);
________;
}
}
return 0;
}
2,以下函数的功能是删除学符串s中的所有数字字符。例如,若输入字符串为abed1234efg567",则删除数字字符后的字符串为“abcdefg”。请填空。
#include <stdio.h>
deleDigits(char *s){
int n = 0, i;
for (i = 0; s[i]; i++)
if ()
s[]=a[i];
s[n]=__;
}
int main()
{
char str[80];
scanf(“%s”,str);
deleDigits(str);
print(“%s\n”,str);
return 0;
}
四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
1,编写程序,要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为7084分,C等为6069分,D等为60分以下。成绩的等级由键盘输入。
-
现有10个城市名及其春、夏、秋、冬四个季节的平均温度值,编写程序,定义合适的结构体输入10个城市名和四季温度,计算各个城市的全年平均温度,并按照平均温度从低到高的顺序输出城市名、四季温度及全年平均温度。
-
按要求编程:
(1)设计一个函数int isprime(int x)用于判断一个整数是否为素数,是素数返回1,否则返回0。(素数是只能被 1和它自身整除的整数)
(2)在主函数中调用 isprime函数,输出 100-999之间的个位数字为7的所有素数之和。