题目:下面的一段程序的输出结果为( ) (鲁科安全)
#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
答案:D
分析:if(-1),-1为非0,表达式为真,所以打印1,if(0),0则表达式为假,所以执行else,打印4,结果为14
题目:( )设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
分析:s为int整形所以打印格式%d或%i,表达式结束标志以;结束,所以选A
题目:if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)
答案:8==n判断方式更好,因为8==n,当在输入代码时,若漏掉一个=号,程序会提示报错,能迅速找到错误的原因,而n=8和n==8程序都是执行的,并不会提示报错
题目:if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)
答案:switch-case结构效率更高,因为if-else if-else 结构需要多次判断,执行效率低,而switch语句只需要在switch表达式中执行一次,根据执行结果,匹配对应的case语句,所以switch-case结构执行效率高
题目:结构化程序设计所规定的三种基本控制结构是:( ) (易购软件)
A. 输入、处理、输出 B. 形、网形、环形
C. 顺序、选择、循环 D. 主程序、子程序、函数
答案:C,c语言的三大控制结构为顺序、选择、循环
题目:C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:__________ (智洋)
A. 必须为字母 B. 必须为下划线
C. 必须为字母或下划线 D. 可以是字母,数字和下划线中任一字符
答案:C C语言的标识符只能由字母,数字和下划线三种字符组成,且第一个字符不能是数字,只能为字母或下划线
题目:若执行下面的程序时,从键盘上输入 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,先运算,再自增,所以先判断5>5,不成立,执行else,同时,x自增为6,x--,先运算,再自减,所以先打印x的值,即打印结果为6,再自减为5,所以屏幕打印结果为6
题目:以下语句中,能够判断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:uiNum/16*16,若只有当uiNum能被16整除时才没有余数存在,否则,余数丢失,再*16肯定得不到原来的uiNum的值,所以A可以,B:uiNum%16,模运算取余若为0,肯定能被16整除,所以B可以,C:0x0F=00001111,按位与,只有在最后4位均为0时,输出结果才为0,表明为0结果时,uiNum肯定是16的倍数,即能被16整除,D:对于无符号数,右移4位,相当于整除2^4即16,左移4位,相当于乘2^4即16,与A选项效果一致,所以D也可以
题目:编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char ch;
//提示输入一个小写字母
scanf(" %c",&ch);
//判断输入的是不是小写字母
if(ch>='a'&&ch<='z')
{
printf("输入字母对应的大写字母为%c\n",ch-32);
}
else
{
printf("输入字符不是字母,请重新输入\n");
}
return 0;
}
题目:已知学生成绩(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>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int score=0;
//提示输入一个学生成绩
printf("请输入学生成绩:\n");
scanf("%d",&score);
switch(score/10)
{
case 9:
case 10:
printf("该成绩等级为A\n");break;
case 8:
printf("该成绩等级为B\n");break;
case 7:
printf("该成绩等级为C\n");break;
case 6:
printf("该成绩等级为D\n");break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("该成绩等级为E\n");break;
default:
printf("输入成绩无效,请重新输入\n");break;//输入无效成绩,进行提示
}
return 0;
}
题目:编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)
方法1:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a=3,b=5,temp=0;
//采用临时变量方法交换a和b
temp=a;
a=b;
b=temp;
//输出交换后的a和b
printf("交换后a=%d,b=%d\n",a,b);
return 0;
}
方法2:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a=3,b=5;
//采用数值加减法交换
a=a+b;
b=a-b;
a=a-b;
//输出交换后的a和b
printf("交换后a=%d,b=%d\n",a,b);
return 0;
}
方法3:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a=3,b=5;
//采用按位异或方式交换
a=a^b;
b=a^b;
a=a^b;
//输出交换后的a和b
printf("交换后a=%d,b=%d\n",a,b);
return 0;
}
题目:编写一个程序。实现输入一个三位数,判断是否是水仙花数。
水仙花数——各个位立方之和等于本身。
eg: 1*1*1 + 5*5*5 + 3*3*3 = 153,所以153是水仙花数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int num=0;
//提示输入三位的数
printf("请输入三位数:\n");
scanf("%d",&num);
//先判断输入的有效性
if(num>=0&&num<=999)
{
//分别得到三位数的各个位
int a,b,c;
a=num%10;//得到个位
b=num/10%10;//得到十位
c=num/100%10;//得到百位
//判断是否为水仙花数
if((a*a*a+b*b*b+c*c*c)==num)
{
printf("输入的值是水仙花数\n");
}
else
{
printf("输入的值不是水仙花数\n");
}
}
else
{
printf("请重新输入三位数\n");
}
return 0;
}
题目:编写一个程序。实现输入一个年份,判断是不是闰年。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int year=0;
//提示输入一个年份
printf("请输入一个年份\n");
scanf("%d",&year);
//判断一个年份是否为闰年:4年整除,百年不整除或400年整除
if((year%4==0&&year%100!=0)||year%400==0)
{
printf("输入年份为闰年\n");
}
else
{
printf("输入年份为平年\n");
}
return 0;
}
题目:编写一个程序。请实现以下功能:(威海精讯畅通)
输入三个数,分别为年、月、日,输出此日是该年的第几天。
输入:
XXX XXX XXX
输出:
此日是该年的第XXX 天
示例:
输入 2020 2 20
程序输出 此日是该年的第51 天
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int day1=31,day2=28,day3=31,day4=30,day5=31,day6=30,day7=31,day8=31,
day9=30,day10=31,day11=30,day12=31;
int year,month,day;
//提示输入年月日
printf("请输入年 月 日\n");
scanf("%d %d %d",&year,&month,&day);
//判断年份是闰年还是平年
if((year%4==0&&year%100!=0)||year%400==0)
{
day2=29;
}
//判断输入的月份和日是否有效
if(month>=1&&month<=12)
{
if(day>=1&&day<=31)
{
//计算是多少天,采用switch语句实现
int sum=0;
switch(month)
{
case 12:
sum+=day11;
case 11:
sum+=day10;
case 10:
sum+=day9;
case 9:
sum+=day8;
case 8:
sum+=day7;
case 7:
sum+=day6;
case 6:
sum+=day5;
case 5:
sum+=day4;
case 4:
sum+=day3;
case 3:
sum+=day2;
case 2:
sum+=day1;
case 1:
sum+=day;
default:
break;
}
printf("此日是该年的第%d天\n",sum);
}
else
{
printf("输入日子无效,请重新输入\n");
}
}
else
{
printf("输入月份无效,请重新输入\n");
}
return 0;
}
题目:编写一个程序。输入三角形的 三个边长
判断能否构成三角形,如果能
输出能构成三角形
再输出是什么三角形
等边 [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>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a,b,c;
//提示输入三角形的三个边长
printf("请输入三角形的三个边长\n");
scanf("a=%d b=%d c=%d",&a,&b,&c);
//判断是否能构成三角形
if(a+b>c&&a+c>b&&b+c>a)
{
printf("三个边长能构成三角形\n");
if(a==b&&a==c&&b==c)
{
printf("该三角形为等边三角形\n");
}
else if(a==b||a==c||b==c)
{
printf("该三角形为等腰三角形\n");
}
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
{
printf("该三角形为直角三角形\n");
}
else
{
printf("该三角形为普通三角形\n");
}
}
else
{
printf("三个边长不能构成三角形\n");
}
return 0;
}
题目:编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a,b,c,d;
//提示输入四个值
printf("请输入四个值\n");
scanf("%d %d %d %d",&a,&b,&c,&d);
//采用if语句比较从大到小排序
if(a<b)
{
a=a^b;
b=a^b;
a=a^b;
}
if(b<c)
{
b=b^c;
c=b^c;
b=b^c;
}
if(c<d)
{
c=c^d;
d=c^d;
c=c^d;
}
if(a<b)
{
a=a^b;
b=a^b;
a=a^b;
}
if(b<c)
{
b=b^c;
c=b^c;
b=b^c;
}
if(a<b)
{
a=a^b;
b=a^b;
a=a^b;
}
printf("输入四个数从大到小排序为%d %d %d %d\n",a,b,c,d);
return 0;
}