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
答案:14
-1不为零,即条件成立
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
100是int类型,打印函数格式要用%d或%i,答案D缺少分号
3、if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)
答:if(8==n)好,常量在前面可以减少因编写错误缺少'='而造成的程序逻辑错误,变量在左侧编译器在编译过程中不会报错。
4、if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)
答:switch-case效率更高,在转换成汇编语言程序时,switch-case会生成一张跳转表来指定实际跳转的分支,而if-elseif-else则需要遍历分支直到条件成立。
5、结构化程序设计所规定的三种基本控制结构是:( ) (易购软件)
A. 输入、处理、输出 B. 形、网形、环形
C. 顺序、选择、循环 D. 主程序、子程序、函数
答案:c
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
答:6
++或--在后面则先运算,再+1或-1
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)
答:B D
A:uiNum可以是任意值
B:可以
C:0x0F:0001 0000
任意第五位不为1的二进制数都可以满足条件
D:任意无符号整数右移四位后再左移四位,右侧补零,0x xxxx 0000转十进制得16*x+32*x+62*x+144*x,16的指数形式可以被除尽
9、编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)
#include <stdio.h>
int main()
{
char a;
scanf("%c",&a);
printf("%c\n",a-32);
return 0;
}
10、已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)
成绩(grade) | 等级 |
90<=grade<=100 | A |
80<=grade<90 | B |
70<=grade<80 | C |
60<=grade<70 | D |
grade<60 | E |
请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch....case 语句)
#include <stdio.h>
int main()
{
int gread;
scanf("%d",&gread);
switch(gread/10)
{
case 10:
case 9 : printf("A"\n);break;
case 8 : printf("B"\n);break;
case 7 : printf("C"\n);break;
case 6 : printf("D"\n);break;
default: printf("E\n");
}
return 0;
}
11、编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)
#include <stdio.h>
int main()
{
int a = 3,b = 5;
a = a + b;
b = a - b;
a = a - b;
return 0;
}
12、编写一个程序。实现输入一个三位数,判断是否是水仙花数。
水仙花数——各个位立方之和等于本身。
eg: 1*1*1 + 5*5*5 + 3*3*3 = 153,所以153是水仙花数
153由1个100 5个10 3个1
个位 = num%10
十位 = num/10%10
百位 = num/100%10
#include <stdio.h>
int main()
{
int a;
scanf(" %d",&a);
if(a == ((a%10)*(a%10)*(a%10)+(a/10)*(a/10)*(a/10)+(a/100)*(a/100)*(a/100)))
printf("%d是水仙花数\n",a);
else
printf("%d不是水仙花数",a);
return 0;
}
13、编写一个程序。实现输入一个年份,判断是不是闰年。
#include <stdio.h>
int amin()
{
int year;
scanf(" %d",&year);
((0 == year%4 && 0 != year%100) || 0 == year%400) ? printf("%d年是闰年\n",year) :
printf("%d不是闰年\n",year);
return 0;
}
14、编写一个程序。请实现以下功能:(威海精讯畅通)
输入三个数,分别为年、月、日,输出此日是该年的第几天。
输入:
XXX XXX XXX
输出:
此日是该年的第XXX 天
#include <stdio.h>
int main()
{
int yy, mm, dd, n;
switch(mm-1)
{
case 11: n +=30;
case 10: n +=31;
case 9: n +=30;
case 8: n +=31;
case 7: n +=31;
case 6: n +=30;
case 5: n +=31;
case 4: n +=30;
case 3: n +=31;
case 2: (((0 == yy%4) && (0 != yy%100)) || (0 == yy%400)) ? (n +=29) :
(n +=28);
case 1: n +=31;
case 0: n +=dd;
}
printf("%d年%d月%d日是%d年的地第%d天",yy,mm,dd,yy.n);
return 0;
}
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]
普通
如果不能
输出不能构成三角形
#include <stdio.h>
int main(){
int a,b,c;
printf("输入三边整数:");
scanf("%d %d %d",&a,&b,&c);
if (a + b > c && a + c > b && b + c > a)
{
if(a == b && a == c)
{
printf("%d,%d,%d是等边三角形",a,b,c);
}
else if
(a == b || a == c || b == c)
{
if(a * a + b * b == c * c ||
a * a + c * c == b * b ||
b * b + c * c == a * a)
{
printf("%d,%d,%d是等腰直角三角形",a,b,c);
}
else
{
printf("%d,%d,%d是等腰非直角三角形",a,b,c);
}
}
else if
(a * a + b * b == c * c ||
a * a + c * c == b * b ||
b * b + c * c == a * a)
{
printf("%d,%d,%d是非等腰直角三角形",a,b,c);
}
else
{
printf("%d,%d,%d是普通三角形",a,b,c);
}
}
else
{
printf("%d,%d,%d不能构成三角形\n",a,b,c);
}
return 0;
}
16、编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)
#include <stdio.h>
int main()
{
int a,b,c,d,i;
scanf(" %d %d %d %d",&a,&b,&c,&d);
if (a>b) i = a, a = b, b = i;
if (b>c) i = b, b = c, c = i;
if (c>d) i = c, c = d, d = i;
if (a>b) i = a, a = b, b = i;
if (b>c) i = b, b = c, c = i;
if (a>b) i = a, a = b, b = i;
printf("%d<%d<%d<%d\n",a,b,c,d);
return 0;
}