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

这篇具有很好参考价值的文章主要介绍了【C语言】初阶测试 (带讲解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C语言】初阶测试 (带讲解),【C】,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.倒置字符串


 文章来源地址https://www.toymoban.com/news/detail-709209.html

① 选择题

        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 

【C语言】初阶测试 (带讲解),【C】,c语言,算法,开发语言,程序人生,学习

总共算出有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;
}

 【C语言】初阶测试 (带讲解),【C】,c语言,算法,开发语言,程序人生,学习

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】,c语言,算法,开发语言,程序人生,学习

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

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

 

到了这里,关于【C语言】初阶测试 (带讲解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【初阶C语言】初阶结构体详细讲解

    结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 例如描述一个学生: 结构的成员可以是标量、数组、指针,甚至是其他结构体。 有了结构体类型,那如何定义变量,其实很简单。 结构体变量访问成员 结构变量的成员是通过点操作符(

    2023年04月12日
    浏览(36)
  • 【初阶C语言】实现扫雷(详细讲解+全部源码)

    本游戏用到了三个文件 两个源文件:扫雷.c ,game.c 一个头文件:game.h 想要做好游戏,首要任务就是要把模块想好。 先打印一个游戏菜单 玩家选择是否(1\\0)是否进入游戏 游戏思路:(这次实现的是初级难度的扫雷,棋盘9X9,10个雷) 我们先创建两个二维数组,一个数组布

    2023年04月09日
    浏览(33)
  • 初始C语言(7)——详细讲解有关初阶指针的内容

     第一章 “C“浒传——初识C语言(1)(更适合初学者体质哦!)  第二章 初始C语言(2)——详细认识分支语句和循环语句以及他们的易错点   第三章 初阶C语言(3)——特别详细地介绍函数   第四章 初始C语言(4)——详细地讲解数组的内容以及易错点   第五章

    2024年02月11日
    浏览(36)
  • 【初始C语言8】详细讲解初阶结构体的知识

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖         在上一章中,我们浅浅地学习了初阶指针的相

    2024年02月08日
    浏览(42)
  • 《程序人生》

    《程序人生》对乔布斯和马斯克访谈的反思: 1、这个世界不在乎你的自尊,只在乎你自我感觉良好的同时有所成就。说明大多数人的观点是《乌合之众》,必须有从想到去做到的能力,面子是无能者维护尊严的盾牌。 2、年轻时候一定要大量阅读,因为年轻时候有很多梦想,

    2024年02月02日
    浏览(56)
  • 程序人生,中秋共享

    在这个中秋节即将来临之际,作为一名程序员,对这个传统佳节有着特殊的感悟。程序人生,就像这中秋的明月一样,有时圆满,有时缺憾,但只要我们用心去感受,去体验,就能找到那份属于自己的精彩。中秋节,是一个团圆的日子。在这个特殊的日子里,我们不仅与家人

    2024年02月07日
    浏览(54)
  • 程序人生(CSAPP大作业)

    摘  要 本文介绍了 Hello 程序的生命周期。本文通过对Hello在Linux下的预处理、编译、汇编、链接等进程的分析,详细讲解了一个程序从诞生到执行再到消亡的典型过程。虽然程序执行的过程在程序员眼中只是屏幕上显示的一根字符串,但在短短的几毫秒内,程序经历了预处理

    2023年04月24日
    浏览(53)
  • 【如何重燃程序人生】

    以下是一些可以重燃程序人生的建议: 1.学习新技术:尝试学习新的技术或框架,掌握新的语言或工具可以帮助您挑战自己并保持激情。 参加活动:参加一些技术会议、讲座、研讨会或者社区活动,可以与其他程序员交流思想和学习最新进展。 开始一个新项目:尝试开始一

    2024年02月11日
    浏览(49)
  • 哈工大CSAPP程序人生大作业

    正在上传…重新上传取消 计算机系统 大作业 题     目   程序人生 -Hello’s P2P  专       业    计算机科学与技术        学    号   2021110991             班    级      2103101             学       生         安心           指 导 教 师    

    2023年04月24日
    浏览(68)
  • 【程序人生】如何在工作中保持稳定的情绪?

    在工作中保持稳定的情绪是现代生活中一个备受关注的话题。随着职场压力和工作挑战的增加,我们常常发现自己情绪波动不定,甚至受到负面情绪的困扰。然而,保持稳定的情绪对于我们的工作效率、人际关系和整体幸福感都至关重要。 无论你是一位职场新人还是一位资深

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包