【C语言】初阶测试 (带讲解)

 

目录

① 选择题

        1. 下列程序执行后,输出的结果为( )

2. 以下程序的输出结果是? 

3. 下面的代码段中,执行之后 i 和 j 的值是什么() 

4. 以下程序的k最终值是:

5. 以下程序的最终的输出结果为:

6. 下列描述中正确的是()

 7.C 语言规定,在一个源程序中,main函数的位置()

8.以下叙述不正确的是( )  

9.以下叙述正确的是( )。

10. 执行如下代码, c 的值是:()

 11. 假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后y的值为()

12. 以 下 for 循 环 的 执 行 次 数 是()

13. 若有定义语句: int year=1009 , *p=&year ;

14. 选择表达式 11|10 的结果(本题数值均为十进制) 

15. char a ; int b ; flat c ; double d ; 则表达式 a*b+d-c 值的类型为() 

②ACM编程题

1.求最小公倍数

2.倒置字符串


 

① 选择题

        1. 下列程序执行后,输出的结果为( )

#include <stdio.h>
int cnt=0;
int fib(int n){
cnt++;
if(n==0)
return 1;
else if(n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
void main()
{
fib(8);
printf("%d",cnt);
}

A 41

B 67

C 109

D 177 

总共算出有67次递归运算,每次进入fib()都会cnt++;所以选B 

2. 以下程序的输出结果是? 

int x = 1;do{printf("%2d\n",x++);}while(x--); 

A 1

B 无任何输出

C 2

D 陷入死循环

x=1,进入,然后后置加加变成2,在进入while,变成1.如此死循环。选D 

3. 下面的代码段中,执行之后 i 和 j 的值是什么() 

int i=1;
int j;
j=i++

A 1,1

B 1,2

C 2,1

D 2,2

选C

4. 以下程序的k最终值是:

 int i = 10; 
int j = 20; 
int k = 3; 
k *= i + j;

 A 90

B 50

C 70

D 30

因为赋值操作符优先级较低,所以先运算i+j再*K 

5. 以下程序的最终的输出结果为:

int a=1; 
void test()
{ 
int a=2;
a+=1;}  
int main(){
test();
printf("%d\n",a);
return 0;
}

A 1

B 2

C 3

D 4 

局部变量出了作用域就销毁了,所以打印的是全局变量a,这里并没有将a的地址传过去。 

6. 下列描述中正确的是()

A 表示m>n为true或者m<n为true的表达式为m>n&&m<n

B switch语句结构中必须有default语句
C 如果至少有一个操作数为true,则包含“]”运算符的表达式true

D if语句结构中必须有else语句

选C 

 7.C 语言规定,在一个源程序中,main函数的位置()

A 必须在最开始
B 必须在系统调用的库函数的后面
C 可以任意
D 必须在最后 

选C 

8.以下叙述不正确的是( )  


A  一个C源程序可由一个或多个函数组成
B  一个C源程序必须包含一个main函数
C   C程序的基本组成单位是函数
D   在C程序中,注释说明只能位于一条语句的后面 

 选D

9.以下叙述正确的是( )。

在C程序中,main函数必须位于程序的最前面
C程序的每行中只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的拼写错误 

选C 

10. 执行如下代码, c 的值是:()

int a=0,c=0;
do{
--c;
a=a-1;
}while(a>0);

A  0

B 1

C  -1

D 死循环 

c--等于-1; a = a-1  a 等于-1,while(-1>0) 为假,跳出循环,所以选C; 

 11. 假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后y的值为()

A 3.500000

B 3

C 2.000000

D 3.000000

3/2为整数1,  1+double型的x, 1+2.0 = 3.0;所以选D 

12. 以 下 for 循 环 的 执 行 次 数 是()

 for(x=0,y=0;(y=123)&&(x<4);x++); 

A 是无限循环

B 循环次数不定

C 4次

D 3次

y=123恒为真,只看x<4; 只有x =0,1,2,3一共四次循环就会跳出,所以选C 

13. 若有定义语句: int year=1009 , *p=&year ;

以下不能使变量 year 中的值增至 1010 的语句是 

A *p+=1;

B (*p)++;

C ++(*p)

D *p++ 

*p++ p会先跟++结合,就会跳到下一个整型地址,题目要的是通过&year修改值 ;选D

14. 选择表达式 11|10 的结果(本题数值均为十进制) 

A 11

B 10

C 8

D 2

| //按位或, 只要有一个为真就为真,1011和1010 | 后,结果为 1011;所以选A

15. char a ; int b ; flat c ; double d ; 则表达式 a*b+d-c 值的类型为() 

A float

B int

C char

D double 

两个不同类型进行计算时,会吧小的提 升成的,所以最后结果为double.选D

②ACM编程题

1.求最小公倍数

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小 公倍数。

输入描述: 输入两个正整数A和B。

输出描述: 输出A和B的最小公倍数。 

示例1: 输入 5 7 输出 35 

int main()
{long long a = 0;long long b = 0;scanf("%lld %lld", &a, &b);//求出a和b的较大值long long i = 1;while (i * a % b != 0){i++;}printf("%lld\n", i * a);return 0;
}

 

2.倒置字符串

将一句话的单词进行倒置,标点不倒置。

比如 I like beijing. 经过函数后变为:beijing. like I

输入描述: 每个测试输入包含1个测试用例: I like beijing.

输入用例长度不超过100 输出描述: 依次输出倒置之后的字符串,以空格分割

示例1: 输入 I like beijing.

                输出 beijing. like I 

void reverse(char* left, char* right)
{while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}int main() {char arr[101] = { 0 };//abcdef ghi qwer\0//scanf("%s", arr);//gets(arr);//scanf("%[^\n]s", arr);int ch = 0;int i = 0;while ((ch = getchar()) != '\n'){arr[i++] = ch;}int len = strlen(arr);//1. 逆序整个字符串reverse(arr, arr + len - 1);//2. 逆序每个单词char* cur = arr;while (*cur){char* start = cur;while (*cur != ' ' && *cur != '\0'){cur++;}char* end = cur - 1;reverse(start, end);//逆序一个单词if (*cur == ' ')cur++;}printf("%s\n", arr);return 0;
}

 

【C语言】初阶已经全介绍了一遍,做完这套初阶测试,巩固,后续还会出每日一题【C语言】。

文中不足的地方,希望大佬指点改善 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redisson分布式锁实战

实战来源 此问题基于电商 这周遇见这么一个问题&#xff0c;简略的说一下 由MQ发布了两个消息&#xff0c;一个是订单新增&#xff0c;一个是订单状态变更 由于直接付款之后&#xff0c;这两个消息的发布时间不分先后&#xff0c;可能会造成两种情况&#xff0c;1、订单状态变更…

Spark2x原理剖析(二)

一、概述 基于社区已有的JDBCServer基础上&#xff0c;采用多主实例模式实现了其高可用性方案。集群中支持同时共存多个JDBCServer服务&#xff0c;通过客户端可以随机连接其中的任意一个服务进行业务操作。即使集群中一个或多个JDBCServer服务停止工作&#xff0c;也不影响用…

后端笔试题(2)分频器波形图

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口

算法通关村第十八关:青铜挑战-回溯是怎么回事

青铜挑战-回溯是怎么回事 回溯&#xff0c;最重要的算法之一 主要解决一些暴力枚举也搞不定的问题&#xff0c;例如组合、分割、子集、排列、棋盘等 从性能角度来看回溯算法的效率并不高&#xff0c;但对于这些暴力都搞不定的算法能出结果就很好了&#xff0c;效率低点没关系…

c++类与对象

文章目录 前言一、1、类的引入2、类的定义3、类的访问限定符及封装4、类的实例化5、类对象模型6、this指针7、封装 前言 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关…

MySQL聚簇索引与非聚簇索引

分析&回答 当数据库一条记录里包含多个字段时&#xff0c;一棵B树就只能存储主键&#xff0c;如果检索的是非主键字段&#xff0c;则主键索引失去作用&#xff0c;变成顺序查找了。这时应该在第二个要检索的列上建立第二套索引。这个索引由独立的B树来组织。有两种常见的方…

2023国赛数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…

vue基于Echarts、百度地图MapVGL实现可视化大屏数据展示

一、布局 常见的大屏数据展示布局&#xff0c;一般会将地图作为整个屏幕的背景&#xff0c;在地图上以九宫格布局展示各类数据图表。实现这一效果可以使地图的z-index1,在地图上的图表等z-index>1,下面会详细描述这种设计该如何实现&#xff1a; <div style"width…

嵌入式开发笔试面试

C语言部分&#xff1a; 1.gcc的四步编译过程 1.预处理 展开头文件&#xff0c;删除注释、空行等无用内容&#xff0c;替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误&#xff0c;如果有错则报错&#xff0c;没有错误则生成汇编文件。 gcc -S hello.i -o h…

C++ vector模拟实现

目录 使用insert时迭代器失效使用erase时迭代器失效使用memcpy浅拷贝的问题调用最匹配的函数可能出现的问题模拟实现vector 使用insert时迭代器失效 在模拟vector插入的时候会遇到扩容后pos失效的问题&#xff0c;需要更新pos vector():_start(nullptr), _finish(nullptr), _e…

解耦只是一个巧合?

本文分享一篇在IJCAI2023看到的文章&#xff1a;Overlooked Implications of the Reconstruction Loss for VAE Disentanglement 首先回顾下VAE&#xff0c;其loss函数有两项&#xff0c;一项是重构误差&#xff0c;另一项是正则项&#xff1a; L r e c ( x , x ^ ) E q ϕ (…

QT(9.1)对话框与事件处理

作业&#xff1a; 1. 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&…

23062C++QT day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

FPGA实战小项目3

基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DDS sin和cosine波形的产生

无需公网IP,实现远程访问群晖Drive并挂载为电脑磁盘的方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

利用MQ实现mysql与elasticsearch数据同步

流程 1.声明exchange、queue、RoutingKey 2. 在hotel-admin中进行增删改&#xff08;SQL&#xff09;&#xff0c;完成消息发送 3. 在hotel-demo中完成消息监听&#xff0c;并更新elasticsearch数据 4. 测试同步 1.引入依赖 <!--amqp--> <dependency><groupId&…

欧洲云巨头OVHcloud收购边缘计算专家 gridscale

边缘计算社区近日获悉&#xff0c;欧洲云巨头OVHcloud已进入全面收购德国公司 gridscale 的谈判&#xff0c;该公司是一家专门从事超融合基础设施的软件提供商。 此次战略收购将标志着 OVHcloud 的另一个重要里程碑&#xff0c;使该集团能够显着加速其地理部署&#xff0c;并进…

lv3 嵌入式开发-6 linux shell脚本编程(概念、变量、语句)

1 Shell脚本概述 1.1Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 1.2Shell脚本编写流…

[JAVA] byte与int的类型转换案例剖析

总结&#xff1a; ①没有byte的字面值&#xff0c;赋值时需要强制转换类型 ②涉及运算&#xff0c;系统自动进行类型升级&#xff0c;由此用final修饰&#xff0c;代表这是一个不会更改值的常量&#xff0c;通过编译 感受&#xff1a;还是用int吧&#xff0c;自动类型转换太复…

Java程序员所需Javascript知识

它是一种脚本语言&#xff0c;可以用来更改页面内容&#xff0c;控制多媒体&#xff0c;制作图像、动画等等 js 代码位置 <script>// js 代码 </script>引入 js 脚本&#xff0c;在js脚本中写js代码 <script src"js脚本路径"></script>注…