本文目錄一覽:
- 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
原創文章,作者:HQLZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137131.html