本文目录一览:
- 1、C语言的一道计算结果分析试题,百思不得其解,大家分析下,谢了
- 2、几个常见的C语言面试题分析
- 3、求高手解答C语言的一个试题,,最好带上解释,,谢谢~~~~~
- 4、C语言考试试题答案
- 5、C语言试题,那位大神帮忙给个答案
C语言的一道计算结果分析试题,百思不得其解,大家分析下,谢了
2473CR
while((c=getchar())!=’\n’)
{
switch(c-‘2’) {
case 0:
case 1:putchar(c+4); //第一次输入c=‘2’,c-'2'=0,走到这里,输出c+4='2'+4='6' 没有break继续下面case 2的语句 再输出一次c+4=6 第四次输入3,c-'2'=1走到这里,同第一次会输出两个c+4=‘7’
case 2:putchar(c+4);break; //第二次输入'4' c-'2'=2走到这里,输出c+4='4'+4='8' 然后break
case 3:putchar(c+3);
default:putchar(c+2);break; //第三次输入'7' c-'2'=5走到这里,输出c+2='7'+2='9' 然后break
}
所以答案是A 668977
几个常见的C语言面试题分析
一次去一个小公司面试,没有太重视,当时由于工作甚忙,也没作准备。他们给我的试卷有大量的题,规定一个小时必须做完,一看题量,吓了一大跳,题有链表,有多维数组,有大量的程序阅读,幸亏基本功还算扎实,未辱使命,差强完成。等到做到编程题时,才发现自己太长时间没有写过程序了,让一些琐碎的改BUG工作和代码维护浪费了太多的精力。一直做下去,心里暗暗吃惊,一个小时,这个题量如果是在刚毕业时,还是有可能完成的,工作几年后,压力渐小,写程序基本都是拿来主义,对标准库函数的原理把握和编程能力越来越退化。由于当时时间紧迫,所写程序也不够完善,过后又思考了一下,回到家后赶紧又对这些问题总结了一下。下面对面试中遇到的编程问题分析了一下。真是人在社会如江湖呀,学习是一刻也不能放松的事。稍一不慎,晚节不保不说,反而会阴沟里翻船。
1.获取路径下的文件名
char * FindFileName(char * s)
{
int len;
char *tmp=NULL;
ASSERT(s != NULL);
for (len=strlen(s); len0;len--)
{
if((s[len]=='/') ||(s[len]=='//'))
{
tmp = s[len+1];
break;
}
}
return tmp;
}
2.把整型转化为字符型
char * i2a(int n, char *s)
{
int i, sign;
ASSERT(s != NULL);
if ((sign = n) 0)
{
n = -n; //转为正数,利于取位
}
do
{
s[i++] = n % 10 + '0';
}
while ((n /= 10) 0)
if (sign 0)
{
s[i++] = '-';
}
s[i] = '/0';
reverse(s);
}
3.把字符型转为整型
int a2i(char * s)
{
int i, n, sign;
ASSERT(s != NULL);
for (i = 0; s[i] == ' '; i++)
{
NULL; //如果字串前有空格,跳过所有空格
}
sign = (s[i] == '-') ?: -1 : 1;
if (s[i] == '+' || s[i] == '-')
{
i++; //判断是正整数串还是负整数串
}
for (n = 0; s[i] = '0' s[i] = '9'; i++)
{
n = 10 * n + (s[i] - '0');
}
return sign*n;
}
4.输出字符串倒文,不能动态分配内存
char * reverse(char * s)
{
int c, i, j;
ASSERT(s != NULL);
for (i = 0, j = strlen(s) - 1; i j; i++, j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}
return s;
}
5.查找子串是否存在
int strindex(char *str,char *searchstr)
{
int end, i, j;
ASSERT((str != NULL) (searchstr != NULL));
//计算结束位置
end = strlen(str) - strlen(searchstr);
if ( end 0 )
{
for ( i = 0; i = end; i++ )
{
for ( j = i; str[j] == searchstr[j-i]; j++ )
{
if ( searchstr[j-i+1] == '/0' ) /* 子字符串字结束 */
{
return i + 1; /* 找到了子字符串 */
}
}
}
}
return -1;
}
求高手解答C语言的一个试题,,最好带上解释,,谢谢~~~~~
#include
"stdio.h"
main()
{
int
a=45,b=40,c=50,d;
d=a30?b:c;
/*如果a30,则d=b,否则d=c.因为a=4530,所以d=b=40*/
switch(d)
/*d=40,直接跳到case
40*/
{
case
30
:
printf("%d,",a);
case
40
:
printf("%d,",b);
/*输出"b,",即"40,".由于没有break语句,所以继续往下执行*/
case
50
:
printf("%d,",c);
/*输出"c,",即"50,"*/
default
:
printf("#");
/*输出#*/
}
}
所以结果是:40,50,#
lz要注意在case
40和case
50的输出语句中有一个逗号
C语言考试试题答案
1. 11,12.
2. { ,}, 变量声明,函数体.
3. int,float,double.
4. 存储空间.
5. 将10赋值给变量s.
6. ;
7. 1,0.
8. 高
C语言试题,那位大神帮忙给个答案
◆单选题 共(40 分)
1、在C语言中, char型数据在内存中的存储形式是:___A___
A、补码
B、反码
C、原码
D、ASCII码
2、已知int i, x[3][4];则不能将x[1][1]的值赋给变量i的语句是___C___
A、i=*(*(x+1))
B、i=x[1][1]
C、i=*(*(x+1))
D、i=*(x[1]+1)
3、以下叙述正确的是__D____
A、在C程序中,main函数必须位于程序的最前面
B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
4、若x=2,y=3则x||y的结果是__B____
A、0
B、3
C、1
D、2
5、若有以下说明语句:char s='\\\092';则下面哪一项是正确的__B____
A、使s的值包含2个字符
B、说明语句不合法
C、使s的值包含6个字符
D、使s的值包含4个字符
6、一个C程序的执行是从_A_____
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
7、已知int a[10];则对a数组元素的正确引用是______ 没有正确的,AC相同,应该是选项有问题。
A、a[10]
B、a[3.5]
C、a[10]
D、a(5)
8、若希望当A的值为奇数时,表达式的值为"真",A的值为偶数表达式的值为"假"。则以下不能满足要求的表达式是___C___
A、A%2= =1
B、!(A%2 = =0)
C、!(A%2)
D、A%2
9、在C语言的if语句中,用作判断的表达式为___B___
A、关系表达式
B、逻辑表达式
C、算术表达式
D、任意表达式
10、C语言程序由什么组成?___C___
A、子程序
B、主程序和子程序
C、函数
D、过程
11、已知static int a[2][3]={2,4,6,8,10,12}; 正确表示数组元素地址的是___C___
A、*(a[1]+2)
B、a[1]+3
C、*(a+1)
D、a[0][0]
12、075的十进制写法为___,十六进制写法为___。 C
A、0x4b 0113
B、0165 117
C、61 0x3d
D、0x4b 61
13、在C语言中,字符型数据在内存中的存储形式是__B____
A、原码
B、补码
C、反码
D、ASCII码
14、( )以下关于数组的描述正确的是 C
A、数组大小固定,但是可以有不同类型的数组元素
B、数组大小可变,但是所有数组元素的类型必须相同
C、数组大小固定,所有元素的类型必须相同
D、数组大小可变,可以有不同类型的数组元素
15、在C语言中,要求运算数必须是整型的运算符是__D___
A、/
B、++
C、!=
D、%
16、( A)若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是
A、ps+3
B、s[3]
C、ps[3]
D、ps+=3,*ps
17、(D )选择正确的输入语句( )。:(其中:char string[20];)使得string的内容为"I am student". D
A、scanf("%s", string);
B、scanf("%c", string);
C、scanf("%s", string);
D、gets(string);
18、已知char b[5], *p=b;则正确的赋值语句是。__C____
A、b=”abcd”
B、*b=”abcd”;
C、p=”abcd”;
D、*p=”abcd”;
19、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式___B___
A、从左起输出该字串,右补空格
B、按原字符长从左向右全部输出
C、右对齐输出该字串,左补空格
D、输出错误信息
20、75的十六进制写法为___,八进制写法为______ C
A、0x4b 0113
B、0165 117
C、61 0x3d
D、0x4b 61