E36.C语言模拟试卷1第一大题选题解析与提示(未完)

点我去下载C语言模拟试卷1的文件

备注:ZIP文件中的参考答案仅仅提供最终结果

目录

第3题

第5题

第7题

第9题

第14题

第16题

第19题

第20题

第22题

第24题

第26题

第27题

第28题


第3题

3.若有说明语句:char c = '\64' ; 则变量C包含:。

A)1个字符 B)2个字符

C)3个字符 D)说明不合法,C值不确定

解析:

\64不是解析为3个字符(\,6,4),在8.【C语言】转义字符文说过

其中有一个表格,下面节选了\ddd的内容

注意看细节:1到3位

所以有\d,\dd,\ddd这3种情况

八进制64==十进制52=十六进制34

VS验证:

cpp 复制代码
#include <stdio.h>
int main()
{
	char  c = '\64';
	return 0;
}

x86+debug,调试模式运行至return 0;

内存窗口输入&c

c在内存中存储的值为34

所以选A

第5题

5.语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和 \ D)**

解析:

%只能 用于整数,/可以用于小数,如9/2.0==4.5

所以选A

第7题

7.以下选项中,能用作用户标识符的是___

A)void B)8_8 C)0 D)unsigned

解析:

有关标识符的规则

1.标识符的时候是不能和关键字重复(A,D错)

2.标识符可包含A~Z,a~z,0~9,下划线,但第一个字符必须为字母或下划线(B错)

所以选C

第9题

9.表达式:(int)((double)9/2)-(9)%2的值是___

A)0 B)3 C)4 D)5

解析:

复习有关优先级的知识点 15.25【C语言】操作符的属性 点我跳转

本题要用到: 优先级: /和% 大于 -

因此先进行(int)((double)9/2)和(9)%2的运算

9/2==4,先强制类型转换为double,再强制类型转换为int,结果为4 (9)%2==1

4-1=3,所以选B

第14题

14.以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是

A)if((a>b)&&(b>c)) k=1;else k=0;

B)if((a>b)||(b>c) k=1;else k=0;

C)if(a<=b) k=0;else if(b<=c) k=1;

D)if(a>b) k=1;else if(b>c) k=1; else k=0;

解析:

回顾三目操作符,15.【C语言】初识操作符 下 点我跳转

本题属于三目操作符的嵌套类型

可以将题目的语句转换为if语句

可写为

cpp 复制代码
if (a > b)
{
	执行(b > c ? 1 : 0) 
}
else
{
	k = 0;
}

exp2的if语句

cpp 复制代码
if (b > c)
{
	k = 1;
}
else
{
	k = 0;
}

合并为

cpp 复制代码
if (a > b)
{
	if (b > c)
	{
		k = 1;
	}
	else
	{
		k = 0;
	}
}
else
{
	k = 0;
}

显然选A

第16题

16.有以下程序

cpp 复制代码
#include <stdio.h>
int main()
{
    int n = 2, k = 0;
    while (k++ && n++ > 2);
    printf("%d %d\n", k, n);
    return 0;
}

程序运行后的输出结果是___

A)0 2 B)1 3 C)5 7 D)1 2

解析:

后置++的特性:先使用,后++

有关++和--的特性见15.【C语言】初识操作符 下

while(k++&&n++>2);这里有陷阱

由于是从左向右运算,0>2为假,k++正常执行,后方的n++不在执行

所以k==1,n==2

所以选D

第19题

19.有以下程序

cpp 复制代码
#include <stdio.h>
void fun(int p)
{
    int d = 2;
    p = d++; printf("%d", p);
}

int main()
{
    int a = 1;
    fun(a);
    printf("%d\n", a);
    return 0;
}

程序运行后的输出结果是___

A)32 B)12 C)21 D)22

提示:

这里注意fun函数的调用方式为传 调用(要与传调用做区分),不会改变a的值

有关传 调用和传 调用见29.【C语言】函数系列中 自定义函数

所以选A

第20题

20.以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能,造成错误的原因是___

cpp 复制代码
#define MIN -2147483647
int findmax(int x[], int n)
{
    int i, max;
    for (i = 0; i < n; i++)
    {
        max = MIN;
        if (max < x[i])
            max = x[i];
    }
    return max;
}

A)定义语句int i,max;中max未赋初值

B)赋值语句max=MIN;中,不应给max赋MIN值

C)语句if(max<x[i]) max=x[i];中判断条件设置错

D)赋值语句max=MIN;放错了位置

提示:

可以自行设定一个数组来分析,如x[4] = {1,2,5,3};

解析:当i == 2时,max的值为x[]的最大值,当i == 3时,max的值先为MIN,之后max值为3,错过了最大值

所以选B

第22题

22.程序段如下

cpp 复制代码
int k = 0;
while (k++ <= 2);
printf("last=%d\n", k);

则执行结果是last=。

A)2 B)3 C)4 D)无结果

解析:

注意细节:while(k++<=2);的尾部有个分号,循环语句为空

不要误解k++<=2的执行策略!本题很容易误选B

1.0<2,执行循环,之后k++

2.1<2,执行循环,之后k++

3.2=2,执行循环,之后k++

4.3>2,跳出循环,但之后k仍然++

所以选C

第24题

24.若二维数组a有m列,则a[i][j]元素前的数组元素个数为:。

A)j*m+i B)i*m+j C)i*m+j-5 D)i*m+j+1

解析:

如果行和列都从1开始计数,画图可知

所以选B

第26题

26.设有两字符串"Beijing"、"China"分别存放在字符数组str1[20],str2[10]中,下面语句中能把"China"连接到"Beijing"之后的为:。

A)strcpy(str1,str2);

B)strcpy(str1, "China");

C)strcat(str1,"China")

D)strcat("Beijing",str2);

提示:

一般像字符函数和字符串函数的参数是这样设定的

cpp 复制代码
function (dest,src)

如果之前学过汇编,就可以顺利理解这样写的原因:

如在查汇编指令集的时候,经常会出现这样的指令形式

cpp 复制代码
mov dest,src
add dest,src
adc dest,src
or dest,src
xor dest,src

dest被称为目的操作数 ,src被称为源操作数

可以在这里类比strcat,strcpy函数-->称他们的参数为"源参数","目标参数"

复习strcat函数的用法点我跳转

复习strcpy函数的用法点我跳转

所以选C

第27题

27.以下程序的运行结果是:。

cpp 复制代码
#include <stdio.h>
int main()
{
    int a = 2, i;
    for (i = 0; i < 3; i++)
        printf("%4d", f(a));
    return 0;
}

f(int a)
{
    int b = 0, c = 3;
    b++;
    c++;
    return(a + b + c);
}

A)7 10 13 B)7 7 7

C)7 9 11 D)7 8 9

注意:

这里的正确选项其实有问题,之前在31.【C语言】详解printf文中讲过

%4d代表输出的最小宽度是4,且4>0,属于右对齐

VS运行后:

仔细看的话:

每个7前面都空了4格

第28题

28.在C语言程序中,若未在函数定义时说明函数类型,则函数默认的类型为:。

A)void B)double C)int D)char

在VS中,如果自定义函数没有写返回类型,在生成解决方案的窗口会看到这样一句话

warning C4013: 某某函数未定义;假设外部返回 int

相关推荐
向宇it1 分钟前
【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器
开发语言·游戏·unity·游戏引擎
喝旺仔la17 分钟前
Python与MongoDB交互
开发语言·python·mongodb
MavenTalk18 分钟前
Python批量处理客户明细表格数据,挖掘更大价值
开发语言·python·表格处理
尘浮生28 分钟前
Java项目实战II基于Java+Spring Boot+MySQL的购物推荐网站的设计与实现(源码+数据库+文档)
java·开发语言·数据库·spring boot·mysql·maven·intellij-idea
yi碗汤园43 分钟前
C#自定义工具类-数组工具类
开发语言·算法·c#
虽千万人 吾往矣1 小时前
golang rpc
开发语言·后端·网络协议·tcp/ip·golang
熙曦Sakura1 小时前
【C/C++】错题记录(三)
c语言·开发语言·c++
程序猿进阶1 小时前
React 原理分析
java·开发语言·前端·react.js·面试·前端框架·职业发展
椎名澄嵐1 小时前
★ C++进阶篇 ★ map和set
开发语言·数据结构·c++·职场和发展
猫武士水星1 小时前
计算机视觉(CV)技术的优势和挑战
开发语言