C语言百日刷题第十二天

前言

今天是刷题第12天,放弃不难,但坚持一定很酷~

临近期末,刷几套模拟题

在这里插入图片描述

C语言百日刷题第十二天

选择题

1.设a=1;b=2;c=3;d=4;则表达式a<b?a:c<d? a:d的结果是____。
A、3
B、1
C、4
D、2

正确选项:B

三目运算符a?b:c的意思是,如果表达式a对则执行b否则执行c。
本题中:a<b是对的,所以执行a,而a=1,所以该表达式的结果为1

2.以下错误的数组定义是_____。
A、float f[10+’A’]
B、double d[1+2+3]
C、#define N 10 int a[N + 2];
D、int n=10; int a[n+2];

正确选项:D

数组在定义的时候,大小必须为常变量。

3.以下正确的变量标识符是______。
A、my_var
B、01bc
C、bc-cd
D、char

正确选项:A

1.变量名可以是字母、数字和下划线的组合。
2.变量名的开头必须是字母或下划线,不能是数字。
3.变量名绝对不可以是C语言关键字。
4.变量名不能有空格

4.已知char s[100] = “ABC”;char *const node = s; 下列语句合法的是___
A、node[2]=’k’
B、*node[2]=’k’
C、node = “xyz”
D、*node = “xyz”

正确选项:A

const限制了不能修改node指针,但是可以修改该指针指向的内容。

5.已知:int x=1,y=-1;则语句printf(“%d\n”,(x--&&++y));的输出结果是____
A、0
B、-1
C、2
D、1

正确选项:A

x- -后为0,++y后也为0

6.C语言程序中,整型常量的书写形式不包括______
A、八进制
B、十六进制
C、十进制
D、二进制

正确选项:D

7.在以下运算符中,优先级最高的运算符是_______
A、&&
B、<=
C、%
D、=

正确选项:C
在这里插入图片描述

8.对于char ch;下面正确的赋值是_______
A、ch=’123’
B、ch=’ ’
C、ch=’\’
D、ch=’a’

正确选项:D

9.合法的字符常量是______
A、’W’
B、’’
C、“a”
D、‘\’

正确选项:A

字符常量是括在一对单引号内的字符

10.若主函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调用函数返回值的类型是______
A、float型
B、double型
C、由系统当时决定
D、int型

正确选项:D

11.下列叙述中错误的是_______
A、C语言是一种结构化程序设计语言
B、结构化程序设计提倡模块化的设计方式
C、结构化程序由顺序、分支、循环三种基本结构组成
D、使用三种基本结构构成的程序只能解决简单问题

正确选项:D

C语言就顺序、分支、循环三种结构。这三种结构配合可以解决C语言能解决的所有问题

12.该程序的运行结果为______

int main()
{
	int a = 1, b = 2, c = 3;
	if(a == b)
		a++;
	if(b < c)
		b++;
	else
		c++;
	printf("%d %d %d",a, b, c);
	return 0;
}

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

正确选项:D

a不等于b所以不执行a++的操作,而b确实小于c进行b++的操作,所以b=2+1=3,而c没有变还是3,所以打印的结果是1 3 3

13.以下程序的输出结果为:

#include<stdio.h>
int main()
{
	int i, j, x = 1;
	for (i = 0; i < 2; i++)
	{
		x++;
		for (j = 0; j < 3; j++)
		{
			if (j % 2) continue;
				x++;
		}
	}
	printf("%d\n", x);
	return 0;
}

A、8
B、5
C、6
D、7

正确选项:D

continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定

14.表达式(1,2,3,4)的结果是____
A、3
B、2
C、4
D、1

正确选项:C

逗号表达式的值是从左到右最后一个表达式的值

15.C语言中,运作对象必须是整型数的运算符是
A、%和、
B、、
C、**
D、%

正确选项:D

求余运算必需是整型是因为求余是在整数除法中的运算。

16.下面程序运行时输入“china?”,其执行结果为

int main()
{
	char c;
	c = getchar();
	while (c != '?')
	{
		putchar(c);
		c = getchar();
	}
}

A、china???
B、china
C、china?
D、china??

正确选项:B

getchar函数每次只能读取一个字符,但是当读取导?时候,不满足循环条件,直接结束循环,没有打印出来

17.该程序的运行结果是________

void main()
	{
		int n; n = 9;
		if (n++ < 10)
			printf(" % d\n", n);
		else 	  printf("% d\n", n--);
	}

A、11
B、8
C、9
D、10

正确选项:D

n- -是先给值后自减

18.该程序的输出结果是

void main()
	{
		int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
		int *p = a + 1;
		printf("%d\n", *(p + 2));
	}

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

正确选项:D

* p = a+1 表明指针p指向的是数组的第二个元素 2 而p+2则让指针右移了2位,指向的是4,解引用后打印的就是4

19.有如下程序

int func(int a, int b)
{
	return a + b;
}
void main()
{
	int x = 2, y = 5, z = 8, r;
	r = func(func(x, y), z);
	printf("%d\n", r);
}

该程序的输出结果为______
A、13
B、12
C、14
D、15

正确选项:D

定义的func函数的作用返回相加的两个数,输入2,5则func(2,5)为7然后func(7,8)就是7+8=15

20.以下关于C语言数组说法正确的是_____
A、可以使用动态分配技术、定义元素个数可变的数组
B、数组元素的数据类型可以不一致
C、数组元素个数可以不确定、允许随机变动
D、定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数

正确选项:D

判断题

1.在不漏写break的情况下,switch语句各个case标号出现的次序不影响执行结果( )

2.在被调用函数中,对形参数组定义时可以指定每一维的大小,也可也省略第一维的大小说明( )

3.不同于数学,在C中处理数据必须明确其类型( )

4.从用户使用的角度看,函数有两种:库函数、用户自定义函数。( )

5.指针变量不可以作为函数的参数来使用。( )

6.for语句构成的循环不能用其他语句构成的循环来代替。( )

三种循环其实都是相通的,可以彼此换

7.对3个整型变量赋值,可以用以下语句:int a = b =c =3; ( )

8.switch的default子句可以省略不用( )

9.C语言提供输入输出函数。( )

输入输出函数是C标准函数库中的函数提供的

10.字符型常量表达方式是将字符用英文的双引号包围。()

11.do-while循环至少要执行一次循环语句。( )

12.若指针变量指向一维数组的第一个元素,将指针变量加整数3,既指针后移三个元素。( )

13.数组元素小标,系统默认从1开始。( )

14.数组元素只能用下标法或元素名来表示。( )

还可以用指针

15.C编译单位是函数。( )

c程序编译时是以原程序文件为单位进行编译的,而不是以函数为单位进行编译的。

编程题

1.输入两个实数,用一个函数求出它们之和。

#include<stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int x, y;
	scanf("%d %d", &x, &y);
	printf("%d", Add(x, y));
	return 0;
}

2.用指针方法来处理下述问题:将n个数按输入时的顺序逆序排列,用函数实现。

#include<stdio.h>
void reverse(int* p, int n)
{
	int temp;
	int i;
	for (i = 0; i <= n / 2; i++)
	{
		temp = *(p + i);
		*(p + i) = *(p + n - 1 - i);
		*(p + n - 1 - i) = temp;
	}
}
int main()
{
	int array[100];
	int n = 0;
	printf("输入元素个数:");
	scanf("%d", &n);
	printf("依次输入元素:\n");
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &array[i]);
	}
	reverse(array, n);
	for (int i = 0; i < n; i++)
	{
		printf("%d ", array[i]);
	}
	return 0;
}
  • 35
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子夜的星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值