ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言初阶考试

2022-01-26 19:01:12  阅读:172  来源: 互联网

标签:初阶 题目 int 00000000 C语言 ++ include main 考试


这是自己在哔哩哔哩上听鹏哥C语言视频的一个简单的考试

现在分享给大家

选择题

题目1:求下列程序的运行结果是 67

#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);

}

解题思路:传进去一个数字8,只要n>=2,cnt就++一次,进入下面的return fib(n - 1) + fib(n - 2)会产生两种结果,分别是7和6,再继续递归时会7又会产生6和5,6产生5和4,一次下去,直到所有递归都结束

题目2:下列程序运行的结果是 :死循环

#include<stdio.h>

int main()

{

    int x = 1;

    do

    {

       printf("%d", x++);   //这里会先打印一,然后x产生++的效果

    } while (x--);

}

题目3:下列程序执行后i和j的值分别是 2 1

#include<stdio.h>

int main()

{

    int i = 1;

    int j;

    j = i++;

}

题目4:一下程序的k最终值是 90

#include<stdio.h>

int main()

{

    int i = 10;

    int j = 20;

    int k = 3;

    k *= i + j;  //*=的优先级低于+

    printf("%d", k);

}

题目5:下列程序的最终输出结果是 1

#include<stdio.h>

#include<stdlib.h>

int a = 1;

void test()

{

    int a = 2;  //局部变量优先,局部的a只能在test函数内使用

    a += 1;

}

int main()

{

    test();

    printf("%d", a);

    return 0;

}

题目6:下列描述中正确的是  c

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

B:switch语句结构中必须有default语句

C:如果至少有一个操作数为ture,则包含“||”运算符的表达式ture

D:if语句结果中必须有else语句

题目7:C语言规定,在一个源程序中,main函数的位置 c

A:必须在最开始

B:必须在系统调用的库函数的后面

C:可以任意

D:必须在最后

题目8:以下叙述不正确的是   d

A:一个源程序可由一个或多个函数组成

B:一个源程序必须包含一个main函数

C:c程序的基本组成单位是函数

D:在c程序中,注释说明只能位于一条语句的后面

题目9:以下叙述正确的是  c

A:在c程序中,main函数必须位于程序的最前面

B:c程序的每行中只能写一条语句

C:C语言本身没有输入输出语句

D:在对一个c程序进行编译的过程中,可发现注释中的拼写错误

C语言只规定了语法规则,库函数是利用C语言语法规则写出来的

题目10:执行一下程序,c的值是  -1

#include<stdio.h>

int main()

{

    int a = 0;

    int c = 0;

    do

    {

       --c;

       a = a - 1;

    } while (a > 0);

}

题目11:假定x和y为double类型,则执行x=2;y=x+3/2后y的值为 3.000000

3/2是两个整数相处,得到的结果是1,y为double类型

题目12:以下for循环执行的次数是  4次

#include<stdio.h>

int main()

{

    int x = 0;

    int y = 0;

    for (x = 0, y = 0; (y = 123) && (x < 4); x++)//循环4次后,x=4

    {

       ;

    }

}

题目13:若有定义语句,int year=100,*p=&year;以下语句不能使变量year中的值增至1010的语句是

A:*p+=1;           B:(*p)++;

C:++(*p);           D:*p++ //++的优先级高于*,++只作用于p

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

11      00000000 00000000 00000000 00001010

10      00000000 00000000 00000000 00001000

11|10   00000000 00000000 00000000 00001010

题目15:char a;int b;float c;double d;

则表达式a*b+d-c值的类型为: double

A*b会把字符a变为整型,加上d,转化为double类型,-c还是double类型

编程题

题目1:求最小公倍数,正整数a和正整数b的最小公倍数是指能被a和b整除的最小的正数值,设计一个算法,求a和b的最小公倍数

输入描述:输入两个整数a和b

输出描述:输出a和b 的最小公倍数

第一种方法:

#include<stdio.h>

int main()

{

    int a = 0, b = 0, i = 0;

    printf("请输入两个整数\n");

    scanf_s("%d %d", &a, &b);

    int min = a > b ? a : b;//表示最小公倍数

    while (1)

    {

       if (min % a == 0 && min % b == 0)

       {

           printf("%d", min);

           break;

       }

       min++;

    }

   

}

第二种方法:

#include<stdio.h>

int main()

{

    int a = 0, b = 0;

    scanf_s("%d %d", &a, &b);

    int i = 1;

    for (i = 1;; i++)

    {

       if (a * i % b == 0)

       {

           printf("%d", a * i);

           break;

       }

    }

}

第三种方法:碾转相除法

自己的方法:

#include<stdio.h>

int main()

{

    int a = 0;

    int b = 0;

    int i = 0;

    printf("请输入两个大于0的整数\n");

    scanf_s("%d %d", &a, &b);

    int min = a > b ? a : b;

    for (i = min; i <= a * b; i++)

    {

       if (i % a == 0&& i % b==0)

       {

           printf("%d", i);

           break;

       }

    }

}

题目2:

输入描述:

将一句话的单词倒置,标点不倒置。比如 I like Beijing.经过函数后变为 bejing .like i

输出描述:

每个测试输入包含1个测试用例,输入长度不超过100个单词

标签:初阶,题目,int,00000000,C语言,++,include,main,考试
来源: https://blog.csdn.net/m0_64247174/article/details/122707075

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有