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

news2024/9/21 4:35:51

 

目录

① 选择题

        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.coloradmin.cn/o/987502.html

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

相关文章

hive中遇到length函数不支持bigint

背景 hive中遇到length函数不支持bigint 解决方法&#xff0c;sql转为string之后计算长度 SELECT COUNT(1) FROM ( select msisdn FROM tb_nrmr_sample_lt_dd_total where loc_time in (23090201,23090202,23090203,23090204,23090205,23090206) and length(cast(msisdn as…

2023年9月NPDP产品经理国际认证报名,来弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

一种基于动态代理的通用研发提效解决方案

作为一名研发人员&#xff0c;除了业务开发之外&#xff0c;研发提效是一个永恒的话题&#xff0c;而女娲正是这一话题下进行的一次全面的剖析和实践。 作者&#xff1a;张全洪(钝悟) 一、女娲是什么 女娲是业务研发同学&#xff08;开发、测试、运维&#xff09;在软件迭代的…

高忆管理:军工板块走高,奥普光电涨停,恒宇信通等大涨

军工板块8日盘中发力走高&#xff0c;到发稿&#xff0c;晨曦航空、恒宇信通涨超12%&#xff0c;腾景科技涨逾11%&#xff0c;奥普光电涨停&#xff0c;霍莱沃、新余高科涨超7%。 对于该板块&#xff0c;组织表示&#xff0c;受职业增速下降以及“十四五”中期调整等不确定性因…

谈谈JSF业务线程池的大小配置 | 京东物流技术团队

1.简介 JSF业务线程池使用JDK的线程池技术&#xff0c;缺省情况下采用Cached模式&#xff08;核心线程数20&#xff0c;最大线程数200&#xff09;。此外&#xff0c;还提供了Fixed固定线程大小的模式&#xff0c;两种模式均可设置请求队列大小。 本文旨在通过一个简化场景&a…

如何利用python来提取SQL语句中的表名称

1.介绍 在某些场景下&#xff0c;我们可能需要从一个复杂的SQL语句中提取对应的表名称&#xff0c;在这样的场景下&#xff0c;我们如果在python中处理的话&#xff0c;就需要用到SQLparse这个库。 SQLparse 是一个用于解析 SQL 查询语句的 Python 库。它可以将复杂的 SQL 查询…

解决js计算小数不准的问题

1.使用计算函数 function accAdd(arg1, arg2) {var r1, r2, m;try { r1 arg1.toString().split(".")[1].length } catch (e) { r1 0 };try { r2 arg2.toString().split(".")[1].length } catch (e) { r2 0 };m Math.pow(10, Math.max(r1, r2));retur…

2023年9月北京/广州/深圳DAMA-CDGP数据治理专家认证报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

el-form表单中不同数据类型对应的时间格式化和校验规则

1. 在表单中, 当选择不同的数据类型时, 需要在下面选择时间时和数据类型对应上, 通过监听数据类型的变化, 给时间做格式化, 2. 但是当不按顺序选择数据类型后, 再选时间可能会报错, 所以需要在dom更新后, 再清空表单. 3. 校验规则, 结束时间需要大于开始时间, 但是不能选当前的…

报错ssh: Could not resolve hostname

…按照网上好多教程试了一下&#xff1a; 新建密钥&#xff0c;添加到gitee&#xff0c;重新测试。修改host&#xff0c;加入gitee的ip地址到里面去。修改.gifconfig配置文件&#xff0c;配置成ssh的仓库链接。 这上面的方法都不行&#xff0c;后面发现一篇文章&#xff1a;SS…

Spring 6.X IoC 容器

目录 一、Spring IoC 容器和 Bean 简介1.1、容器概述1.3、使用 一、Spring IoC 容器和 Bean 简介 下面主要介绍 Spring 框架对控制反转 (IoC) 原理的实现 首先要说明的是&#xff1a;IoC 也称为依赖注入&#xff0c;这是一个过程。 其次依赖项的定义&#xff1a;对象仅通过构造…

RSS订阅无需代码连接Outlook的方法

RSS订阅用户使用场景&#xff1a; 一家专门做书籍测评的企业&#xff0c;其日常工作中需要收集豆瓣上最受欢迎的书籍进行测评。为了确保测评的准确性和客观性&#xff0c;团队成员需要定期在Outlook上创建会议讨论新书&#xff0c;从不同角度对书籍进行深入剖析。然而&#xff…

Ansys Zemax | 如何将光线追迹结果导出为IES格式

照明系统设计者通常需要向客户提供IES格式的数据。照明工程学会 (Illuminating Engineering Society&#xff0c;IES) 文件格式便于传输辉度数据&#xff0c;该格式得到了制造商和设计师的广泛认可。本文描述了如何生成IES文件并验证结果。&#xff08;联系我们获取文章附件&am…

24张架构图讲透数据治理核心内容

加ghz“大数据食铁兽”&#xff0c;了解更多大数据资讯&#xff01; 一、数据治理的框架和核心内容 不同的利益相关者群体对数据治理的关注点不一样&#xff0c;因此各自的视图也不一样。其中管理者视图可以概括为“五域模型”&#xff0c;分别是“管控域”、“过程域”、“治…

虹科干货 | 码住!虹科工业树莓派应用小tips!

文章来源&#xff1a;虹科工业物联网 点此阅读原文&#xff0c;获取更多干货资料 虹科工业树莓派应用小tips 在应用虹科工业树莓派进行项目开发的过程中&#xff0c;我们会应用到各种功能&#xff0c;部分功能看似不起眼&#xff0c;但是在实际应用开发过程中却非常重要。接…

[C题]2023 年全国大学生数学建模比赛思路、代码更新中.....

&#x1f4a5;1 概述 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c;大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据各商品的历史销售和需求情况每天进行补货。由于商超销…

输送机安装的注意事项

输送机也称输送线&#xff0c;是指在自动化生产过程中起到运输和过渡作用的线体&#xff0c;一般常用的输送机有&#xff1a;滚筒线、皮带线、链条线、链板线等。但无论是哪种输送机&#xff0c;都会涉及到安装的问题&#xff0c;今天我们就从专业的角度来和您分享一下输送机安…

软件供应链安全在金融机构中的最佳实践 | 金融系统安全实战专题交流会圆满成功

9月6日&#xff0c;由广东省粤港澳合作促进会金融专业委员会和粤港澳大湾区金融创新研究院联合举办&#xff0c;开源网安协办的“2023年金融系统安全运营与实战专题交流会”圆满落幕。本次会议紧紧围绕加强安全运营中心建设、应对风险、加强数据安全治理&#xff0c;保障数据安…

字节一面:css选择器有哪些?优先级?哪些属性可以继承?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;css是我们的必备技能&#xff0c;熟悉css选择器以及继承是我们写好css的关键&#xff0c;博主在这给大家细细道来。 &#x1f680; 作者…

PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)

实现原理 进入那些状态不正常的小程序会被重定向至一个Url&#xff0c;使用抓包软件抓取这个Url&#xff0c;剔除不必要参数&#xff0c;使用cURl函数请求网页获得HTML内容&#xff0c;根据内容解析出当前APPID的小程序的状态。 代码 <?php// 编码header(Content-type:ap…