...课程网站建设简介,龙岩网页制作,东莞做网站开发的公司,网站建设的工作总结文章目录 题目答案与解析123456 题目
1、设变量已正确定义#xff0c;以下不能统计出一行中输入字符个数#xff08;不包含回车符#xff09;的程序段是#xff08; #xff09; A: n0;while(chgetchar()!‘\n’)n; B: n0;while(getchar()!‘\n’)n; C: for(n0;getchar()… 文章目录 题目答案与解析123456 题目
1、设变量已正确定义以下不能统计出一行中输入字符个数不包含回车符的程序段是 A: n0;while(chgetchar()!‘\n’)n; B: n0;while(getchar()!‘\n’)n; C: for(n0;getchar()!‘\n’;n); D: n0;for(chgetchar();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(mn) mm-n; //2
while(nm) nn-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 v00,v10,v20
do
{
switch(cgetchar())
{
casea:caseA:
casee:caseE:
casei:caseI:
caseo:caseO:
caseu:caseU:v1 1;
defaultv0 1;v21;
}
}while(c!\n);
printf(v0%d,v1%d,v2%d\n,v0,v1,v2);
return 0;
}A: v07,v14,v27 B: v08,v14,V28 C: v011,v14,v211 D: v012,v14,v212
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(n2)/2 B: (n-1)(n2)/2 C: n(n1)/2 D: (n-1)(n2)
6、小明同学最近开发了一个网站在用户注册账户的时候需要设置账户的密码为了加强账户的安全性小明 对密码强度有一定要求
密码只能由大写字母小写字母数字构成密码不能以数字开头密码中至少出现大写字母小写字母和数字这三种字符类型中的两种密码长度至少为 8
现在小明受到了 n 个密码他想请你写程序判断这些密码中哪些是合适的哪些是不合法的。
答案与解析
1
正确答案D 对于for循环其中第一项初始化表达式只执行一次因此ch只从输入流中取一个字符之后就再不会取字符因此会死循环
2
正确答案C 此题技巧是耐心考查while循环和循环嵌套的理解初值m65,n14循环1判断m!n为真来到循环2判断mn为真执行mm-n;直到m9,n14循环2结束来到循环3判断nm为真执行nn-m;直到m9,n5循环3结束回到循环1如此往复直到mn时循环结束
3
正确答案D 代码switch语句中没有break则每次找到入口进入后顺序执行到代码块结束为止。例如当c为’A’时从case A’进入先后执行v11;v01;v21;而当c为’p’时从default进入先后执行v01;v21;容易看出最终v0和v2是相等的
4
正确答案ABC 1.函数实参是int形参用char不对会发生截断丢失数据2.min在for循环开始时更新为0不再是两个形参中的较小值 3.判断是否整除的时候误将写成赋值运算符4.函数最终要返回一个int值返回值类型没问题但是这里要强调一个选项中没写出的问题如果是牛客网上的题会报编译错误说该函数不是在所有情况下都有返回值只有在if条件成立的情况下有返回值一般在vs上这种情况能通过编译器会给一个默认的返回值。
5
正确答案C 外循环有n次当i0,内循环为n次,当i1,内循环为n-1次,当i2时内循环为n-2次以此类推总次数为n(n-1)(n-2)…21,就是个等差数列等于n(n1)/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;
}