《C语言程序设计》模拟试题

《C语言程序设计》模拟试题

一、单项选择题(每小题2分,共30分,请将每小题答案填在下面对应的横线上)

12345678910
1112131415

1、已知字符’A’的ASCII码值为65,若变量x为char型,以下不能正确判断出x为大写字母的表达式是( )。

A、x >= ‘A’ && x = ‘Z’ B、!(x >= ‘A’ || x <= ‘Z’)

C、(x + 32) >= ‘a’ && (x + 32) <= ‘z’ D、x >= 65 && x <= 90

2、下列关系表达式中,结果为“假”的是( )。

A、3 + 4 >= 6 B、(3 != 4) > 2 C、(1<= 2) || 0 D、3 < 4 == 1

3、下列名称中不能作为变量名或函数名的是( )。

A、hot_dog B、cat001 C、_pri D、2ab

4、设有定义语句int a[][3]={{0},{1},{2}};则数组元素a[1][1]的值是( )。

A、0 B、1 C、2 D、不确定

5、以下选项中,当整型变量x为大于1的奇数时,值不为0的表达式为( )。

A、x % 2 == 0 B、x / 2 == 0 C、2 / x D、x % 2

6、以下不合法的实数是( )。

A、1. B、1.23e+4 C、3e+0.5 D、.123

7、设有变量定义为:int a=0, b=1, c=2;,则下面的表达式中,值为1的表达式是( )。

A、a && b B、a >= b C、a || c && b > c D、a || b

8、设有变量定义为:a=1, b=2, c=3, d=4;,则表达式:“a < b ? a : c<d ? a : d”的值是( )。

A、1 B、2 C、3 D、4

9、表达式“3.6 - 1 / 4 + 1.5 - 5 % 2”的值是( )。

A、2.85 B、3.1 C、4.1 D、3.85

10、表达式“2 != 3 && 3 > 2”的值是( )。

A、true B、非零值 C、真 D、1

11、可以正确表达数学关系“x≥y≥z”的C语言表达式是( )。

A、x >= y && y >= z B. (x >= y) And (y >= z)

C、x >= y >= z D. (x >= y) & (y >= z)

12、下面正确的函数原型定义是( )。

A、void func(x, y) B、void func(int x, int y)

C、int func(int, int); D、int func(int x, y);

13、设有输入语句:scanf(“%d,%d”, &a, &b);,下面正确的输入是( )。

A、12 34 B、12,34 C、1234 D、a=12,b=34

14、设有变量定义为:int a=10, b=20, *p=&a, *q=&b;,则printf(“%d %d”, *p, *q);的输出结果是( )。

A、10 10 B、20 20 C、10 20 D、20 10

15、若a=3,则语句b=a++执行后a和b的值分别为( )。

A、3、4 B、4、3 C、4、4 D、3、3

二、程序阅读题(每小题2分,共20分,请将每小题答案填在下面对应的横线上)

12345678910

1、下面程序段的运行结果是( )。

void main() {

int x = 10, y = 10;

printf(“%d %d\n”, x–, --y);

}

A、10 10 B、9 9 C、9 10 D、10 9

2、有以下程序:

void main() {

int s;

scanf(“%d”, &s);

while (s > 0) {

​ switch (s) {

​ case 1:

​ printf(“%d”, s + 5);

​ case 2:

​ printf(“%d”, s + 4);

​ break;

​ case 3:

​ printf(“%d”, s + 3);

​ default:

​ printf(“%d”, s + 2);

​ break;

​ }

​ scanf(“%d”, &s);

}

}

运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。

A、6566567 B、66656 C、66666 D、6666656

3、下列程序执行后的输出结果是( )。

void main() {

int i, a[6] = { 1,2,3,4,5,6 };

for (i = 5; i >= 0; i–)

​ a[i] *= 10 - i;

printf(“%d %d %d”, a[1], a[3], a[5]);

}

A、9 27 45 B、30 28 18 C、18 28 30 D、19 37 55

4、下面程序段的运行结果是( )。

void main() {

int k = 11;

printf(“%d %o %X\n”, k, k + 1, k + 2);

}

A、l1 12 13 B、ll 14 13 C、l1 014 0xD D、l1 14 D

5、下面程序段的运行结果是( )。

void main() {

int a = 2, b = -1, c = 2;

if (a < b)

​ if (b < 0)

​ c = 0;

​ else

​ c++;

printf(“%d”, c);

}

A、0 B、1 C、2 D、3

6、下面程序段的运行结果是( )。

void f(int* p) {

*p = 50;

}

void main() {

int a = 10, *q;

q = &a;

f(q);

printf(“%d”, a);

}

A、10 B、50 C、15 D、0

7、下面程序段的运行结果是( )。

void swap(int a, int b) {

int t;

t = a, a = b, b = t;

}

void main() {

int x = 10, y = 20;

swap(x, y);

printf(“%d %d\n”, x, y);

}

A、20 10 B、10 20 C、不确定结果 D、程序错误

8、下面程序段的运行结果是( )。

void main() {

int num = 1234, s = 1;

while (num != 0) {

​ s *= num % 10;

​ num /= 10;

}

printf(“%d”, s);

}

A、0 B、1 C、10 D、24

9、已经字符’A’的ASCII码是65,以下程序的输出结果是( )。

void main() {

double a = 5, x = 3.14;

x *= a + (‘E’ - ‘A’);

printf(“%lf\n”, x);

}

A、28.000000 B、19.000000 C、28.260000 D、19.700000

10、以下程序段的输出结果是( )。

void main() {

for (int k = 1; k < 5; k++) {

​ if (k % 2 != 0)

​ printf(“#”);

​ else

​ printf(“*”);

}

}

A、## B、## C、#### D、****

三、填空题(每空2分,共20分,请将每小题答案填在下面对应的横线上)

1、下面程序的功能是输入一个正整数n,并判断它是否为素数。

int main() {

int i, n;

printf("请输入一个大于1的正整数: ");

scanf(“%d”, ① );

for (i = 2; i <= n / 2; i++) {

​ if ( ② )

​ ③ ;

}

if (i > n / 2 && n > 1)

​ printf(“%d 是素数!\n”, n);

​ ④

​ printf(“%d 不是素数!\n”, n);

return 0;

}

2、下面程序的功能是求1到100中所有奇数的和,最后输出累加和的值。

void main() {

int sum, i;

​ ⑤ ;

for (i = 1; i <= 99; ⑥ )

​ sum += i;

printf(“sum=%d\n”, ⑦ );

}

3、下面程序实现从键盘上输入10个整数,求其最大值。

void main() {

int i, n, max;

scanf( ⑧ , &n);

max = n;

for (i = 1; ⑨ ; i++) {

​ scanf(“%d”, &n);

​ if ( ⑩ )

​ max = n;

}

printf(“max=%d\n”, max);

}

四、程序设计题(每小题10分,共30分)

1、从键盘上输入一个正整数 n,计算并输出下面数列前 项的和,输出结果保留5位小数

2、从键盘上输入10个整数存入一维数组中,然后计算并输出这10个数的最小值、最大值和平均值,其中输出的平均值保留2位小数

3、从键盘上输入10个字符,统计其中的英文字母、数字、空格以及其他字符的个数。

输入样例:ab *1 3#(A

输出样例

英文字母个数:3

数字个数:2

空格个数:2

其他字符个数:3。

《C语言程序设计》模拟试题参考答案

一、单项选择题(每小题2分,共30分)

1—5:B B D A D 6—10:C D A C D 11—15:A C B C B

二、程序阅读题(每小题2分,共20分)

1—5:D A C D C 6—10:B B D C A

三、填空题(每空2分,共20分)

① &n

② n%i==0

③ break

④ else

⑤ sum=0

⑥ i+=2 或者 i=i+2

⑦ sum

⑧ “%d”

⑨ i<=9 或者 i<10

⑩ max<n 或者 max<=n

四、程序设计题(每空小题10分,共30分)

1、数列前 n项和。从键盘上输入一个正整数 ,计算并输出下面数列前n项的和,输出结果保留5位小数

参考代码:

int main() {
	int i, n, b, f;
	double s;

	do {
		printf("input n:");
		scanf("%d", &n);
	} while (n < 1);

	f = 1, b = 1, s = 0;
	for (i = 1; i <= n; i++) {
		s += f * i * 1. / b;
		f = -f;
		b = 2 * i + 1;
	}

	printf("s=%.5lf", s);
	return 0;
}

2、从键盘上输入10个整数存入一维数组中,然后计算并输出这10个数的最小值、最大值和平均值,其中输出的平均值保留2位小数

参考代码:

int main() {
	int a[10];
	int i, max, min;
	double avg;

	printf("input 10 int:");
	for (i = 0; i < 10; i++)
		scanf("%d", &a[i]);

	avg = min = max = a[0];
	for (i = 1; i < 10; i++) {
		if (a[i] < min)
			min = a[i];
		if (a[i] > max)
			max = a[i];
		avg += a[i];
	}
	avg /= 10;

	printf("max is: %d, min is: %d, avg is: %.2lf\n", max, min, avg);
	return 0;
}

3、从键盘上输入10个字符,统计其中的英文字母、数字、空格以及其他字符的个数。

输入样例:ab *1 3#(A

输出样例

英文字母个数:3

数字个数:2

空格个数:2

其他字符个数:3

参考代码:

int main() {
	int a, b, c, d, i;
	char ch;

	a = b = c = d = 0;

	for (i = 0; i < 10; i++) {
		ch = getchar();
		if (ch <= 'Z' && ch >= 'A' || ch <= 'z' && ch >= 'a')
			a++;
		else if (ch <= '9' && ch >= '0')
			b++;
		else if (ch == ' ')
			c++;
		else
			d++;
	}
	printf("英文字母个数:%d\n数字个数:%d\n空格个数:%d\n其他字符个数:%d", a, b, c, d);
	return 0;
}
  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
模拟对水利工程水闸的控制,需要先了解水闸的基本工作原理。水闸是一种水利工程设施,主要用于调节水位和流量。一般来说,水闸有三种工作状态:开启、关闭和半开半闭状态。开启状态时,水从上游流向下游;关闭状态时,水从下游不断积累,直到达到一定的水位或流量,然后打开水闸;半开半闭状态则是在两种状态之间调节水流。 在C语言中,我们可以通过控制输入输出流来模拟水闸的控制。下面是一个简单的示例代码: ``` #include <stdio.h> int main() { int status = 0; // 水闸状态,0表示关闭,1表示开启,2表示半开半闭 int choice; // 用户选择的操作 while(1) // 循环输入输出,直到用户选择退出 { printf("当前水闸状态:"); switch(status) { case 0: printf("关闭\n"); break; case 1: printf("开启\n"); break; case 2: printf("半开半闭\n"); break; default: break; } printf("请选择操作:\n"); printf("1. 打开水闸\n"); printf("2. 关闭水闸\n"); printf("3. 调节水闸\n"); printf("4. 退出\n"); scanf("%d", &choice); switch(choice) { case 1: status = 1; break; case 2: status = 0; break; case 3: status = 2; break; case 4: return 0; default: printf("无效操作,请重新选择\n"); break; } } return 0; } ``` 这段代码使用了一个 while 循环,不断接收用户的输入,并根据输入来控制水闸的状态。当用户选择退出时,程序结束。 需要注意的是,这只是一个简单的示例代码,实际的水闸控制系统需要更多的功能和安全机制,比如防止误操作、自动检测水位和流量等。因此,在实际开发中,需要根据具体的需求和实际情况来设计和实现控制系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值