37-巩固练习(一)

37-1 if语句等

1、问:输出结果

int main()
{int i = 0;for (i = 0; i < 10; i++){if (i = 5){printf("%d\n", i);}return 0;}
}

答:一直输出5,死循环

解析:i=5是赋值语句,不是判断语句,每一次循环i都被赋值为5,每一次都打印5;每一次循环i都被赋值为5,加1后是6,永远小于10,要一直循环下去

2、问:关于if语句说法正确是:()

A.if语句后面只能跟一条语句
B.if语句中0表示假,1表示真
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支 
D.else语句总是和它的对齐的if语句匹配

答:C

解析:B:0表示假,非0表示真,并不只有1

3、关于switch说法不正确的是()

A.switct语句中的default子句可以放在任意位置
B.switch语句中case后的表达式只能是整形常量表达式
C.switch语句中case子句必须在default子句之前
D.switch语句中case表达式不要求顺序

答:C

解析:default与case的顺序不作要求;char也是属于整型家族的,因为字符存储的时候,存储的是ASCII码值

4、问:func(1)是多少?

int func(int a)
{int b;switch (a){case 1:b = 30;case 2:b = 20;case 3:b = 16;default:b = 0;}return b;
}

答:0

解析:没有break

5、问:switch(c)语句中,c不可以是什么类型()

A.int   B.Jong   C.char   D .float

答:D

6、问:输出结果

int main()
{int x = 3;int y = 3;switch (x % 2){case 1:switch (y){case 0:printf("first");case 1:printf("second");break;default:printf("hello");}case 2:printf("third");}return 0;
}

 答:hellothird

解析:注意有无break

7、将三个整数按从大到小输出

代码1:

int main()
{int a = 0;int b = 0;int c = 0;scanf("%d%d%d", &a, &b, &c);if (a > b){if (a < c){printf("%d ", c);printf("%d ", a);printf("%d ", b);}else{if (a > c){if (b > c){printf("%d ", a);printf("%d ", b);printf("%d ", c);}else{printf("%d ", a);printf("%d ", c);printf("%d ", b);}}}}else{if (b < c){printf("%d ", c);printf("%d ", b);printf("%d ", a);}else{if (b > c){if (a > c){printf("%d ", b);printf("%d ", a);printf("%d ", c);}else{printf("%d ", b);printf("%d ", c);printf("%d ", a);}}}}return 0;
}

代码2(推荐):

int main()
{int a = 0;int b = 0;int c = 0;int tmp = 0;scanf("%d%d%d", &a, &b, &c);//调整,a放最大值,b放中间值,c放最小值if (a < b){tmp = a;a = b;b = tmp;}if (a < c){tmp = a;a = c;c = tmp;}if (b < c){tmp = b;b = c;c = tmp;}printf("%d %d %d", a, b, c);return 0;
}

 代码3(函数版):

void Swap(int* a, int* b)
{int tmp = 0;tmp = *a;*a = *b;*b = tmp;
}
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d%d%d", &a, &b, &c);//调整,a放最大值,b放中间值,c放最小值if (a < b){Swap(&a, &b);}if (a < c){Swap(&a, &c);}if (b < c){Swap(&b, &c);}printf("%d %d %d", a, b, c);return 0;
}

8、写一个代码打印1-100之间所有3的倍数的数字

代码1:

int main()
{int i = 0;for (i = 3; i <= 100; i+=3){printf("%d ", i);}return 0;
}

代码2:

int main()
{int i = 0;for (i = 1; i <= 100; i++){if(i % 3 == 0)printf("%d ", i);}return 0;
}

9、求两个数的最大公约数

 代码1:暴力求解

int main()
{int a = 0;int b = 0;int tmp = 0;int i = 0;scanf("%d%d", &a, &b);if (a > b)  //让a是小的数{tmp = a;a = b;b = tmp;}for (i = a; i > 1; i--){if ((a % i == 0)&&(b % i == 0)){printf("最大公约数:%d\n", i);break;}}if (1 == i){printf("这两个数没有公约数");}return 0;
}

代码2:辗转相除法

两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。

int main()
{int a = 0;int b = 0;int c = 0;int tmp = 0;scanf("%d%d", &a, &b);while (c= a % b){a = b;b = c;}printf("%d\n", b);return 0;
}

a和b谁大谁小不影响,可以用a=18,b=24和a=24,b=18自己测试一下

37-2 for循环语句等

1、问:关于while(条件表达式)循环练以下叙述正确的是()?
(假设循环体里面没break,continue,return,goto等等语句)

A.循环体的执行次数总是比条件表达式的执行次数多一次
B.条件表达式的执行次数总是比循环体的执行次数多一次
C.条件表达式的执行次数与循环体的执行次数一样
D.条件表达式的执行次数与循环体的执行次数无关

答:B

2、问:输出结果

int main()
{int a = 0, b = 0;for (a = 1, b = 1; a <= 100; a++){if (b >= 20) break;if (b % 3 == 1){b = b + 3;continue;}b = b - 5;}printf("%d\n", a);return 0;
}

答:8

3、编程数一下1到100的所有整数中出现多少个数字9

注意:题目中说的是出现多少个9,而不是多少个数字包含9

int main()
{int i = 0;int count = 0;  //计数for (i = 1; i <= 100; i++){if (i / 10 == 9)  //十位是9{count++;}if (i % 10 == 9)  //个位是9{count++;}}printf("%d\n", count);return 0;
}

4、计算1/1-1/2+1/3-1/4+1/5......+ 1/99 - 1/100的值,打印出结果

代码1:

int main()
{int i = 0;double sum = 0;  //结果是小数for (i = 1; i <= 100; i++){if (i % 2 != 0){sum += 1.0 / i;  //要想得到小数,必须要有一个浮点数}else{sum += -1.0 / i;}}printf("%lf\n", sum);return 0;
}

代码2:

int main()
{int i = 0;double sum = 0;  //结果是小数int flag = 1;  //用于正负变换for (i = 1; i <= 100; i++){sum += (1.0 / i)*flag;flag = -flag;}printf("%lf\n", sum);return 0;
}

5、10个数找最大值

int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int i = 0;int max = arr[0];for (i = 1; i < 10; i++){if (arr[i] > max){max = arr[i];}}printf("%d\n", max);return 0;
}

代码2(手动输入十个数)

int main()
{int arr[10] = { 0 };int j = 0;for (j = 0; j < 10; j++){scanf("%d", &arr[j]);}int i = 0;int max = arr[0];for (i = 1; i < 10; i++){if (arr[i] > max){max = arr[i];}}printf("%d\n", max);return 0;
}

6、 在屏幕上输出九九乘法表

代码1:

int main()
{int i = 0;//打印9行for (i = 1; i <= 9; i++){int j = 0;//打印一行for (j = 1; j <= i; j++){printf("%d*%d=%d ", i, j, i * j);}printf("\n");}return 0;
}

代码2: 

 %2d:右对齐;%-2d:左对齐

int main()
{int i = 0;for (i = 1; i <= 9; i++){int j = 0;for (j = 1; j <= i; j++){printf("%d*%d=%-2d ", i, j, i * j);}printf("\n");}return 0;
}

37-3 函数等

1、问:关于实参和形参描述错误的是()

A.形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化。才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用。改变形参不影响实参

答:C

2、问:函数调用exec(v1,v2),(v3,v4),v5,v6)中,实参的个数()

A .3   B.4   C.5   D.6

答:B

解析:表达式是一个实参

3、问:以下关于函数设计不正确的说法是()

A.函数设计应该追求高内聚低耦合
B.要尽可能多的使用全局变量
C.函数参数不易过多
D.设计函数时,尽量做到谁申请的资源就由谁来释放

答:B

解析:高内聚低耦合,功能单一,不要与其他的产生过多关联;过多使用全局变量,不安全。

4、问:关于C语言函数描述正确的是()

A.函数必须有参数和返回值
B.函数的实参只能是变量
C.库函数的使用必须要包含对应的头文件
D.有了库函数就不需要自定函数了

答:C

5、问:C语言规定,在一个源程序中,main函数的位置()

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

答:C

6、问:以下叙述中不正确的是()

A.在不同的阂数中可以使用相同名字的变量
B.函数中的形式参数是在栈中保存
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

答:D

解析:

7、 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

void print_table(int n)
{int i = 0;for (i = 1; i <= n; i++){int j = 0;for (j = 1; j <= i; j++){printf("%d*%d=%-2d ", i, j, i * j);}printf("\n");}
}
int main()
{int n = 0;scanf("%d", &n);print_table(n);return 0;
}

37-4 函数递归等 

1、问:能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是:()

A.return这两个数   B.形参用数组   C .形参用两个指针   D.用两个全局变量

答:A

解析:return只能返回一个数

2、问:关于函数调用说法不正境的是()

A.函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝
B.函数可以传址调用,传址调用的时候。可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义

答:C

3、问:在函数调用时,以下说法正确的是()

A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里

答:B

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

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

相关文章

类与对象中C++

加油&#xff01;&#xff01;&#xff01; 文章目录 前言 一、类的6个默认成员函数 ​编辑 二、构造函数 1.概念 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 拷贝构造函数典型调用场景 五、赋值运算符重载 1.运算符重载 2.赋值运算符重载 赋值运算符重载格式…

gitee规范团队 代码提交

1.团队开会规范 使用 插件 &#xff1a; git Commit Message Helper 插件进行代码提交前规范 2.gitee代码仓库断控制&#xff0c;上面只是规范了程序员开发端&#xff1b;但是gitee也要管理控制&#xff1b;正则根据每个公司的不同来进行。

基于Springboot+vue的宠物销售商城网站

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;宠物销售商城当然也不能排除在外。宠物销售商城是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#x…

【目录整理】(五)

​​​​​Git 基础 Git 详细安装教程文章浏览阅读10w次&#xff0c;点赞9.6k次&#xff0c;收藏1.7w次。Git 是个免费的开源分布式版本控制系统&#xff0c;下载地址为git-scm.com 或者 gitforwindows.org&#xff0c;本文介绍 Git-2.40.0-64-bit.exe 版本的安装方法&#x…

力软框架打开新的对话框,点击对话框确认按钮的事件AcceptClick的方法

// 原来在力软框架下&#xff0c;点击哪个确认按钮的时候 top.frames[iframeId].AcceptClick直接用这个方法就可以了 &#xff0c;那个方法是直接返回方法的但是不知道是什么情况。如图二所示。死活就返回了ifram标签不知道是什么原因&#xff0c;就获取不到对话框里边自己定义…

故障诊断 | 基于FTNN网络模型的故障诊断(Pytorch)

效果分析 基本介绍 FTNN是一种基于神经网络的故障诊断模型,它旨在识别和定位系统中的故障。使用已标记的数据集对FTNN模型进行训练。标记的数据集包括系统在正常和故障状态下的数据,以及对应的故障标签。通过算法和优化方法,调整网络参数以最小化预测误差。使用独立的测试数…

接口自动化框架搭建(三):pytest库安装

1&#xff0c;使用命令行安装 前提条件&#xff1a;已安装python环境 pip install pytest 或者 pip3 install pytest2&#xff0c;从编译器pycharme中安装

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

2、Cocos Creator 下载安装

Cocos Creator 从 v2.3.2 开始接入了全新的 Dashboard 系统&#xff0c;能够同时对多版本引擎和项目进行统一升级和管理&#xff01;Cocos Dashboard 将做为 Creator 各引擎统一的下载器和启动入口&#xff0c;方便升级和管理多个版本的 Creator。还集成了统一的项目管理及创建…

卷积神经网络(CNN)——基础知识整理

文章目录 1、卷积神经网络 2、图片格式 3、图片卷积运算 4、Kernel 与 Feature Map 5、padding/边缘填充 6、Stride/步长 7、pooling/池化 8、shape 9、epoch、batch、Batch Size、step 10、神经网络 11、激活函数 1、卷积神经网络 既然叫卷积神经网络&#xff0c;这里面首先是…

Node.js中Router的使用

文章目录 介绍router的优点1.导入Express和创建Router&#xff1a;2. 定义路由&#xff1a;3.将router暴露到模块外&#xff1a;4. 将Router挂载到Express应用中&#xff1a;4.1.引入router4.2.使用中间件让router在Express应用中生效(三种写法) 5. 完整示例&#xff1a;5.1.编…

前端三剑客 —— HTML (上)

前端 前端是什么&#xff1f; 把我们的数据以各种方式&#xff08;如&#xff1a;表格、饼图、柱状图等&#xff09;呈现给用户&#xff0c;我们就可以称之为前端。 做前端需要的工具&#xff1f; notepad、editplus、notepad、VS code、webstorm等&#xff0c;一般用于前端开…