当前位置: 首页 > news >正文

C语言日常刷题 4

文章目录

  • 题目
  • 答案与解析
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


题目

1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )
A: n=0;while(ch=getchar()!=‘\n’)n++;
B: n=0;while(getchar()!=‘\n’)n++;
C: for(n=0;getchar()!=‘\n’;n++);
D: n=0;for(ch=getchar();ch!=‘\n’;n++);

2、运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为( )

int main()
{
int m, n;
printf("Enter m,n;");
scanf("%d%d", &m,&n);
while (m!=n) //1
{
while(m>n) m=m-n; //2
while(n>m) n=n-m; //3
}
printf("m=%d\n",m);
return 0;
}

A: 3 B: 2 C: 1 D: 0

3、若运行以下程序时,从键盘输入 ADescriptor<回车> ,则下面程序的运行结果是( )

#include <stdio.h>
int main()
{
char c;
int v0=0,v1=0,v2=0do
{
switch(c=getchar())
{
case'a':case'A':
case'e':case'E':
case'i':case'I':
case'o':case'O':
case'u':case'U':v1 += 1;
default:v0+= 1;v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
return 0;
}

A: v0=7,v1=4,v2=7  B: v0=8,v1=4,V2=8
C: v0=11,v1=4,v2=11 D: v0=12,v1=4,v2=12

4、如下函数是求两个int数字最大公约数的,指出其中存在的问题【多选】( )在这里插入代码片

int gcd(char x,char y)
{
int min = x < y ? x : y;
for (min = 0; min > 0; min--)
if (x % min = 0 && y % min = 0)
return min;
}

A: 参数类型不对    B: 循环变量min初值不对
C: 判断等于的符号不对 D: 返回类型不对

5、执行下面的程序段,语句3的执行次数为( )

for(i = 0; i <= n-1; i++) // (1)
for(j = n; j > i; j--) // (2)
state; // (3)

A: n(n+2)/2 B: (n-1)(n+2)/2 C: n(n+1)/2 D: (n-1)(n+2)

6、小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明
对密码强度有一定要求:

  1. 密码只能由大写字母,小写字母,数字构成;
  2. 密码不能以数字开头;
  3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;
  4. 密码长度至少为 8

现在小明受到了 n 个密码,他想请你写程序判断这些密码中哪些是合适的,哪些是不合法的。

答案与解析

1

正确答案:D
对于for循环,其中第一项初始化表达式只执行一次,因此ch只从输入流中取一个字符,之后就再不会取字符,因此会死循环

2

正确答案:C
此题技巧是耐心,考查while循环和循环嵌套的理解,初值m=65,n=14;循环1判断m!=n为真,来到循环2判断m>n为真,执行m=m-n;直到m=9,n=14;循环2结束来到循环3判断n>m为真,执行n=n-m;直到m=9,n=5;循环3结束回到循环1,如此往复直到m==n时,循环结束

3

正确答案:D
代码switch语句中没有break,则每次找到入口进入后,顺序执行到代码块结束为止。例如当c为’A’时,从case 'A’进入,先后执行v1+=1;v0+=1;v2+=1;,而当c为’p’时,从default进入,先后执行v0+=1;v2+=1;,容易看出最终v0和v2是相等的

4

正确答案:ABC
1.函数实参是int,形参用char不对,会发生截断丢失数据;2.min在for循环开始时更新为0,不再是两个形参中的较小值;
3.判断是否整除的时候误将==写成=赋值运算符;4.函数最终要返回一个int值,返回值类型没问题,但是这里要强调一个选项中没写出的问题,如果是牛客网上的题,会报编译错误,说该函数不是在所有情况下都有返回值,只有在if条件成立的情况下有返回值,一般在vs上这种情况能通过,编译器会给一个默认的返回值。

5

正确答案:C
外循环有n次,当i=0,内循环为n次,当i=1,内循环为n-1次,当i=2时,内循环为n-2次,以此类推,总次数为n+(n-1)+(n-2)+…+2+1,就是个等差数列,等于n(n+1)/2

6

int main()
{int n = 0;while (~scanf("%d", &n)){char passward[101];scanf("%s", passward);int str = strlen(passward);//求密码长度if (passward[0] >= '0' && passward[0] <= '9'){printf("NO\n");//密码不能以数字开头continue;}if (str < 8){printf("NO\n");//密码长度至少为8continue;}int num, cap, loc, other;for (int i = 0; i < str; i++){if (passward[i] >= '0' && passward[i] <= '9')num++;//数字else if (passward[i] >= 'a' && passward[i] <= 'z')loc++;//小写字母else if (passward[i] >= 'A' && passward[i] <= 'Z')cap++;//大写字母elseother++;//其他的}if (other > 0){printf("NO\n");//密码只能由大写字母,小写字母,数字构成continue;}if ((num > 0) + (cap > 0) + (loc > 0) < 2){printf("NO\n");//密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;continue;}printf("YES\n");}return 0;
}
http://www.lryc.cn/news/142629.html

相关文章:

  • MyBatis plus 多数据源实现
  • k-近邻算法概述,k-means与k-NN的区别对比
  • node 项目搭建
  • CSS 属性值计算过程
  • QT版权查询
  • 【leetcode 力扣刷题】双指针///原地扩充线性表
  • 第八章,帖子列表
  • netty与websockt实现聊天
  • 21.2 CSS 三大特性与页面布局
  • MySQL 特殊语法时间格式以及Greadb连接
  • Python(.pyc)反编译:pycdc工具安装与使用
  • 山西电力市场日前价格预测【2023-08-28】
  • python3/pip3 SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  • Python中的迭代器与生成器
  • 简单着色器编写(下)
  • go并发编程基础
  • PHP之 导入excel表格时,获取日期时间变成浮点数
  • 学习 Java 报表技术导入 Maven 依赖出错:jacob 无法下载、jasperreports 依赖错误
  • 力扣-哈希-最长连续序列
  • Java线程 - 详解(1)
  • 结构体-C语言(初阶)
  • 【网络】HTTPS的加密
  • Nacos安装指南
  • java-Optional 类详解
  • sql数据库怎么备份,sql 实时备份
  • RK3399平台开发系列讲解(存储篇)Linux 存储系统的 I/O 栈
  • Java“牵手”天猫淘口令转换API接口数据,天猫API接口申请指南
  • postgresql 条件表达式
  • 姜启源数学模型第五版第五章火箭发射升空
  • 局域网中电脑共享文件给手机