1.下面的一段程序的输出结果为( ) (鲁科安全)
#include <stdio.h>
int main()
{
if(-1)
printf("1");
else
printf("2");
if(0)
printf("3");
else
printf("4");
return 0;
}
A. 23 B. 24 C. 13 D. 14
答案:B
分析:两对if-else语句,上假下真,输出分别为2.4
2.( )设int s = 100,要输出字符串"s的值是100"应使用下列哪个语句?(山东精电电气)
A. printf("s 的值是%d", s); B. printf("s 的值是%s", s)
C. printf("s 的值是%x", s): D. printf("s 的值是%i", s)
答案:A
分析:各个输出如下A s的值是100 ,BCD语句格式错误均报错
3.if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)
答案if(8==n),在错误使用时更易直接报错以供及时修改。
分析:在代码正常运行中,二者并无太大差别,但是考虑到代码书写过程中=和==的使用规则,后者更好。在将==错误书写成=时,依照前者书写习惯必不会在代码运行时提供报错。而同样的错误使用情况下,后者将由于=的使用规则进行报错。这也使得代码书写时更快的发现错误并修改。综上,if(8==n)的判断方式更好,不过最好的方式还是细心。
4.if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)
答案:switch-case结构效率更高。其相对于if-elseif-else结构在多分支的使用场景中代码的运行次数可能在很多相同的分支结果中更少。
分析:if-elseif-else结构对于较考下的分支结果可能需要先通过前面很多分支结果的代码运行,而switch-case结构针对于分支结果直接进行相对应的代码运行,从而使得switch-case结构相对于if-elseif-else结构的效率更高。
5.结构化程序设计所规定的三种基本控制结构是:( ) (易购软件)
A. 输入、处理、输出 B. 形、网形、环形
C. 顺序、选择、循环 D. 主程序、子程序、函数
答案:C
分析:图灵YYDS,三大控制结构顺序,选择,循环。
6.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:__________ (智洋)
A. 必须为字母 B. 必须为下划线
C. 必须为字母或下划线 D. 可以是字母,数字和下划线中任一字符
答案:C
分析:规则主要靠背,两大误区,数字开头和可以用的是_而不是-。
7.若执行下面的程序时,从键盘上输入 5,则输出是 ( ) (智洋创新)
int main(int argc, char **argv)
{
int x;
scanf("%d", &x);
if(x++ > 5)
printf("%d\n", x);
else
printf("%d\n", x--);
return 0;
}
A. 7 B. 4 C. 6 D. 5
答案:C
分析:输入5,x++先以5运算再自增判断为假,之后x=6,输出时x--也是先以6输出再自减,即最终输出的x=6
8.以下语句中,能够判断uiNum(unsigned int)可以被16整除的有()(H3C)
A. if (((uiNum / 16) * 16) == uiNum)
B. if ((uiNum % 16) == 0)
C. if ((uiNum & 0x0F) == 0)
D. if (((uiNum >> 4) << 4) == uiNum)
答案:ABCD
分析:A:先/16保留整数部分去除小数部分给,若能不能被整除,之后再乘16也与原值不恒等。若能被整除,则表示之后乘以16可与原值恒等
B:取模余0表示uiNum可以背16整除。
C:0x0F=0b0000 1111,按位与高四位均为0,第四位1保留,若第四位有1表示肯定不能背16整除。取与之后与0恒等表示第四位并不含1,即可被16整除。
D:同C,先右移4位再左移4位将低4位全部清零。若与原值恒等,则表示uiNum本身二进制第四位就是0,即可背16整除
好问题,为什么不是单选?也祙说是单选哇。
9.编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)
答案:
分析:'A'是65,'a'是97,不过这在这不重要,将输入的字符ASCII码值减去32再输出字符就是最终大写对应的小写了,前提是输入的是小写字母而不是什么奇奇怪怪的阿拉伯数字。
10.已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)
成绩(grade) | 等级 |
90<=grade<=100 | A |
80<=grade<90 | B |
70<=grade<80 | C |
60<=grade<70 | D |
grade<60 | E |
请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch....case 语句)
答案:
分析:除10取整数部分做switch结构case部分判断使用的常量。
11.编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)
答案:
分析:借个临时变量,以总求分,0异或等于对,以差求总。
12.编写一个程序。实现输入一个三位数,判断是否是水仙花数。
水仙花数——各个位立方之和等于本身。
答案:
分析:先确认是否是三位数,再根据条件判断是否是水仙花数。通过计算分别求出个、十、百位然后判断立方和是否等于本身。
13.编写一个程序。实现输入一个年份,判断是不是闰年。
答案:
分析:%4是且%100不是或者%400是。
14.编写一个程序。请实现以下功能:(威海精讯畅通)
输入三个数,分别为年、月、日,输出此日是该年的第几天。
输入:
XXX XXX XXX
输出:
此日是该年的第XXX 天
示例:
输入 2020 2 20
程序输出 此日是该年的第51 天
答案:
分析:不返回switch中的today值从而实现累加计算天数。
15.编写一个程序。输入三角形的 三个边长
判断能否构成三角形,如果能
输出能构成三角形
再输出是什么三角形
等边 [a==b && a==c && b==c]
等腰 [a==b || a==c || b==c]
直角(勾股定理)[a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a]
普通
如果不能
输出不能构成三角形
答案:
分析:判断三边关系确定三角形类型。‘
16.编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)
答案:
分析:把小的放后面。