華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)]

上傳人:gfy****yf 文檔編號(hào):40560311 上傳時(shí)間:2021-11-16 格式:DOC 頁(yè)數(shù):38 大?。?50KB
收藏 版權(quán)申訴 舉報(bào) 下載
華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)]_第1頁(yè)
第1頁(yè) / 共38頁(yè)
華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)]_第2頁(yè)
第2頁(yè) / 共38頁(yè)
華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)]_第3頁(yè)
第3頁(yè) / 共38頁(yè)

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《華為C語(yǔ)言機(jī)試題面試題匯總[共38頁(yè)](38頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1.第一題的題目大概是輸入整型數(shù)組求數(shù)組的最小數(shù)和最大數(shù)之和,例如輸入1,2,3,4則輸出為5,當(dāng)輸入只有一個(gè)數(shù)的時(shí)候,則最小數(shù)和最大數(shù)都是該數(shù),例如只輸入1,則輸出為2;另外數(shù)組的長(zhǎng)度不超過(guò)50 #include<stdio.h> main() {          int num[50]={0};          int i,n;        

2、    printf("請(qǐng)輸入整型數(shù)組的長(zhǎng)度(1~50):");          scanf("%d",&n);                      printf("請(qǐng)輸入整型數(shù)組的元素:");  

3、0;       for (i=0;i<n;i++)          {                    scanf("%d",&num[i]);        

4、       }            int min_num=num[0];          int max_num=num[0];          for(int j=0;j<n;j++)       &#

5、160;  {                    if(max_num<num[j])                          

6、0;  max_num=num[j];                    else if(min_num>num[j])                        

7、;     min_num=num[j];          }          int sum=min_num+max_num;          printf("數(shù)組中最大與最小值之和:%d\n",sum);       &#

8、160;  return 0; }   2.求兩個(gè)長(zhǎng)長(zhǎng)整型的數(shù)據(jù)的和并輸出,例如輸入1233333333333333 。。。 3111111111111111111111111.。。。,則輸出。。。。 #include<stdio.h> #include<string.h> #include<malloc.h> main() {          char *num1,*num2;  //兩個(gè)長(zhǎng)長(zhǎng)整型數(shù)據(jù)

9、          char *sum; //      int temp; int len_num1,len_num2; // 兩個(gè)長(zhǎng)長(zhǎng)整型數(shù)據(jù)的長(zhǎng)度          int len_max,len_min;          num1=(char*)malloc(sizeo

10、f(char));          num2=(char*)malloc(sizeof(char));          printf("輸入兩個(gè)長(zhǎng)長(zhǎng)整型數(shù)據(jù):");          scanf("%s",num1);        &#

11、160; printf("輸入兩個(gè)長(zhǎng)長(zhǎng)整型數(shù)據(jù):");          scanf("%s",num2);          len_num1=strlen(num1);          len_num2=strlen(num2);       &

12、#160;  len_max=(len_num1>=len_num2)? len_num1:len_num2;          len_min=(len_num1<=len_num2)? len_num1:len_num2;          int len_max1=len_max;          sum=(ch

13、ar*)malloc(sizeof(char)*len_max);          memset(sum,0x00,len_max+1);//切忌初始化          for(;len_num1>0&&len_num2>0;len_num1--,len_num2--)          {  &#

14、160;       sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0'));          }          if(len_num1>0)          {  

15、                  sum[len_max--]=num1[len_num1 - 1 ]-'0';                    len_num1--;     &#

16、160;    }          if(len_num2>0)          {                    sum[len_max--]=num1[len_num2 - 1]-'0'

17、;                    len_num2--;          }          for(int j=len_max1;j>=0;j--) //實(shí)現(xiàn)進(jìn)位操作      &#

18、160;   {          //      temp=sum[j]-'0';                    if(sum[j]>=10)        &#

19、160;           {                    sum[j-1]+=sum[j]/10;                  

20、;           sum[j]%=10;                    }          }          char *outsum

21、=(char*)malloc(sizeof(char)*len_max1);          j=0;          while(sum[j]==0)  //跳出頭部0元素                    j++;  &

22、#160;       for(int m=0;m<len_max1;j++,m++)                    outsum[m]=sum[j]+'0';          outsum[m]='\0'; 

23、60;   printf("輸出兩長(zhǎng)長(zhǎng)整型數(shù)據(jù)之和:%s\n",outsum);          return 0; }   3.通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(a~z)組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串過(guò)濾程序,若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過(guò)濾掉。 比如字符串“abacacde”過(guò)濾結(jié)果為“abcde”。 要求實(shí)現(xiàn)函數(shù): void stringFilter(const char *pInputStr, long lInputLen,

24、char *pOutputStr); 【輸入】 pInputStr:輸入字符串 lInputLen:輸入字符串長(zhǎng)度 【輸出】 pOutputStr:輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng); #include <stdio.h> #include<string.h> #include<malloc.h> void stringFilter(const char *p_str, long len, char *p_outstr) { int array[256]={0}; const char *tmp = p_st

25、r; for(int j=0;j<len;j++)  {          if(array[tmp[j]]==0)                    *p_outstr++= tmp[j];          array[tmp

26、[j]]++;  }          *p_outstr = '\0'; }   void main() {          char  *str = "cccddecc";          int len = strlen(str);   

27、0;                char * outstr = (char *)malloc(len*sizeof(char));          stringFilter(str,len,outstr);          printf("%s\n",out

28、str);          free(outstr);          outstr = NULL; }   4.通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(a~z)組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。 壓縮規(guī)則: 1. 僅壓縮連續(xù)重復(fù)出現(xiàn)的字符。比如字符串"abcbc"由于無(wú)連續(xù)重復(fù)字符,壓縮后的字符串還是"abcbc&q

29、uot;. 2. 壓縮字段的格式為"字符重復(fù)的次數(shù)+字符"。例如:字符串"xxxyyyyyyz"壓縮后就成為"3x6yz"   要求實(shí)現(xiàn)函數(shù): void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);   【輸入】 pInputStr: 輸入字符串 lInputLen: 輸入字符串長(zhǎng)度 【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng); #incl

30、ude <stdio.h> #include<string.h> #include<malloc.h>   void stringZip(const char *p_str, long len, char *p_outstr) {          int count=1;          for(int i=0;i<len;i++)   

31、0;      {                    if(p_str[i]==p_str[i+1])                    {    

32、;                         count++;                    }      &#

33、160;             else                    {                  

34、60;          if(count>1)                             {           

35、                           *p_outstr++ = count +'0';                   

36、                   *p_outstr++ =p_str[i];                             } &

37、#160;                           else                       

38、      {                                      *p_outstr++ =p_str[i];     &

39、#160;                       }                           

40、60; count = 1;//注意其位置                    }          }          *p_outstr = '\0'; }   void main() {  

41、;        char *str = "cccddecc";     printf("壓縮之前的字符串為:%s\n",str);          int len = strlen(str);          char * outstr = (char*)malloc(len*sizeo

42、f(char));          stringZip(str,len,outstr);          printf("壓縮之后的字符串為:%s\n",outstr);          free(outstr);          outstr

43、 = NULL; } 5.通過(guò)鍵盤(pán)輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請(qǐng)編寫(xiě)一個(gè)程序輸出運(yùn)算結(jié)果字符串。 輸入字符串的格式為:“操作數(shù)1 運(yùn)算符 操作數(shù)2”,“操作數(shù)”與“運(yùn)算符”之間以一個(gè)空格隔開(kāi)。   補(bǔ)充說(shuō)明: 1. 操作數(shù)為正整數(shù),不需要考慮計(jì)算結(jié)果溢出的情況。 2. 若輸入算式格式錯(cuò)誤,輸出結(jié)果為“0”。   要求實(shí)現(xiàn)函數(shù): void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);   【輸入】 p

44、InputStr: 輸入字符串 lInputLen: 輸入字符串長(zhǎng)度 【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng); #include <stdio.h> #include<string.h> #include<stdlib.h> void arithmetic(const char *input, long len, char *output) {          char s1[10];   

45、       char s2[10];          char s3[10];          int cnt = 0;          int len_input=strlen(input);        &#

46、160; for(int i=0;i<len_input;++i)          {                    if(input[i]==' ')             &#

47、160;               cnt++;          }            if(cnt!=2)          {      

48、              *output++ = '0';                    *output = '\0';           &

49、#160;        return;          }            sscanf(input,"%s %s %s",s1,s2,s3);          if(strlen(s2)!=1||(s2[0]!='+&#

50、39;&&s2[0]!='-'))          {                    *output++ = '0';              

51、      *output = '\0';                    return;            }            int

52、len_s1=strlen(s1);          for(i=0;i<len_s1;i++)          {                    if(s1[i]<'0'||s1[i]>'9'

53、;)                    {                             *output++ = '0

54、9;;                             *output = '\0';                   

55、;          return;                    }          }            int len_s3=str

56、len(s3);          for(i=0;i<len_s3;i++)          {                    if(s3[i]<'0'||s3[i]>'9')  

57、                  {                             *output++ = '0';  

58、;                           *output = '\0';                    

59、60;        return;                    }          }            int x = atoi(s1);

60、         int y = atoi(s3);          if(s2[0]=='+')          {                   

61、; int result = x+y;                    itoa(result,output,10);          }          else if(s2[0]=='-')  

62、0;       {                    int result = x-y;                    itoa(result,output,10

63、);          }          else          {                    *output++ = '0'; &#

64、160;                  *output = '\0';                    return;          

65、  }   } void main() {          char str[] = {"10 - 23"};          char outstr[10];          int len = strlen(str);       &

66、#160;  arithmetic(str,len,outstr);          printf("%s\n",str);          printf("%s\n",outstr);      }   6.一組人(n個(gè)),圍成一圈,從某人開(kāi)始數(shù)到第三個(gè)的人出列,再接著從下一個(gè)人開(kāi)始數(shù),最終輸出最終出列的人 (

67、約瑟夫環(huán)是一個(gè)數(shù)學(xué)的應(yīng)用問(wèn)題:已知n個(gè)人(以編號(hào)1,2,3...n分別表示)圍坐在一張圓桌周?chē)?。從編?hào)為k的人開(kāi)始報(bào)數(shù),數(shù)到m的那個(gè)人出列;他的下一個(gè)人又從1開(kāi)始報(bào)數(shù),數(shù)到m的那個(gè)人又出列;依此規(guī)律重復(fù)下去,直到圓桌周?chē)娜巳砍隽?。? #include <stdio.h> #include<string.h> #include<stdlib.h> #include<malloc.h>   typedef struct Node {        &#

68、160; int data;          struct Node *next; }LinkList;   LinkList *create(int n) {          LinkList *p,*q,*head;          int i=1;       

69、   p=(LinkList*)malloc(sizeof(LinkList));          p->data=i;          head=p;            for(i=1;i<=n;i++)        

70、0; {                    q=(LinkList*)malloc(sizeof(LinkList));                    q->data=i+1;    &

71、#160;               p->next=q;                    p=q;          }     

72、0;    p->next=head;  //使鏈表尾連接鏈表頭,形成循環(huán)鏈表          return head;          free(p);          p=NULL;          free(q)

73、;          q=NULL; }   void deletefun(LinkList *L,int m) {          LinkList *p,*q,*temp;          int i;          p=L;  

74、          while(p->next!=p)          {                    for(i=1;i<m;i++)       

75、0;            {                             q=p;           

76、;                  p=p->next;                    }            

77、60;       printf("%5d",p->data);                    temp=p;                  

78、60; q->next=p->next;                    p=p->next;                    free(temp);     &#

79、160;    }          printf("%5d\n",p->data); }   int main() {          int n=7,m=3;          LinkList *head1;      

80、    head1=create(n);          deletefun(head1,m);          return 0; } 7..輸入一串字符,只包含“0-10”和“,”找出其中最小的數(shù)字和最大的數(shù)字(可能不止一個(gè)),輸出最后剩余數(shù)字個(gè)數(shù)。如輸入 “3,3,4,5,6,7,7” #include<stdio.h> #include<stdlib.h&

81、gt; #include<string.h>   void main() {          char str[100];          printf("輸入一組字符串:\n");          scanf("%s",&str);    &#

82、160;       int len=strlen(str);          int array[100];          int count=0;          for(int i=0;i<len;i++)      &#

83、160;   {                    if(str[i]>='0'&&str[i]<='9')                   

84、60;         array[count++]=str[i]-'0';                   }          array[count]='\0';      

85、60;   int result=count;          int min=array[0];          int max=array[0];          for(int j=0;j<count;j++)          {

86、                    if(max<array[j])                             max=ar

87、ray[j];                    else if(min>array[j])                           

88、  min=array[j];          }          for(int k=0;k<count;k++)          {                 

89、   if(array[k]==min)                             result--;                

90、0;   if(array[k]==max)                             result--;          }       

91、0;  printf("%d\n",result); } 8.輸入一組身高在170到190之間(5個(gè)身高),比較身高差,選出身高差最小的兩個(gè)身高;若身高差相同,選平均身高高的那兩個(gè)身高;從小到大輸出; 如輸入 170 181 173 186 190輸出 170 173 #include<stdio.h> #include<stdlib.h> #define N 5   int main() {         

92、int Height[N];          int dmin;          int H1,H2;          int i,j,temp;            printf("請(qǐng)輸入一組身高在170到190之間的數(shù)據(jù)(共5個(gè)):\n&

93、quot;);          for(int k=0;k<N;k++)          scanf("%d",&Height[k]);          printf("\n");           

94、; for(i=0;i<N;i++)                    for(j=1;j<N-i&&Height[j-1]>Height[j];j++)                    {

95、                             temp=Height[j-1];                    

96、60;        Height[j-1]=Height[j];                             Height[j]=temp;         &#

97、160;          }            H1=Height[0];          H2=Height[1];          dmin=H2-H1;       

98、0;  for(int m=2;m<N;m++)          {                    if(Height[m]-Height[m-1]<=dmin)            

99、60;       {                             H1=Height[m-1];              

100、;               H2=Height[m];                             dmin=Height[m]-Height[m-1];  &

101、#160;                 }          }          printf("身高差最小的兩個(gè)身高為:\n");          printf(&

102、quot;%d,%d\n",H1,H2);          return 0; } 9.刪除子串,只要是原串中有相同的子串就刪掉,不管有多少個(gè),返回子串個(gè)數(shù)。 #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> int delete_sub_str(const char *str,const char *sub_str,char *re

103、sult) {          assert(str != NULL && sub_str != NULL);          const char *p,*q;          char *t,*temp;          p = str;

104、         q = sub_str;          t = result;          int n,count = 0;          n = strlen(q);        &

105、#160; temp = (char *)malloc(n+1);          memset(temp,0x00,n+1);          while(*p)          {              &#

106、160;     memcpy(temp,p,n);                    if(strcmp(temp,q) == 0 )                    {  

107、;                           count++;                       

108、      memset(temp,0x00,n+1);                             p = p + n;            

109、0;       }                    else                    {     

110、60;                              *t = *p;                    &#

111、160;        p++;                             t++;              

112、               memset(temp,0x00,n+1);                    }              &

113、#160;  }          free(temp);          return count; } void main() {          char s[100] = {‘\0’};          int num = delete_su

114、b_str(“123abc12de234fg1hi34j123k”,”123”,s);          printf(“The number of sub_str is %d\r\n”,num);          printf(“The result string is %s\r\n”,s); } 10. 要求編程實(shí)現(xiàn)上述高精度的十進(jìn)制加法。要求實(shí)現(xiàn)函數(shù): void add (const char *num1,

115、const char *num2, char *result) 【輸入】num1:字符串形式操作數(shù)1,如果操作數(shù)為負(fù),則num1[0]為符號(hào)位'-' num2:字符串形式操作數(shù)2,如果操作數(shù)為負(fù),則num2[0]為符號(hào)位'-' 【輸出】result:保存加法計(jì)算結(jié)果字符串,如果結(jié)果為負(fù),則result[0]為符號(hào)位。 #include<stdio.h>  #include<stdlib.h>  #include<string.h>     void move(char *

116、str, int length)    //移除字母前的"-"符號(hào)  {        if(str[0] != '-')          return;      int i;      for(i = 0; i < length-1; i++)    

117、;      str[i] = str[i+1];      str[i] = '\0';  }    int remove_zero(char *result, int length)  {      int count = 0;      for(int i = length-1; i > 0; i--)    //從

118、最后開(kāi)始移除0,直到遇到非0數(shù)字,只對(duì)最初位置上的0不予判斷      {          if(result[i] == '0')          {              result[i] = '\0';  

119、60;           count++;          }else              return length-count;      }      return length - count;

120、  }    void reverse(char *result, int length)        //將字符串倒轉(zhuǎn)  {      char temp;      for(int i = 0; i <= (length-1)/2; i++)      {        

121、  temp = result[i];          result[i] = result[length-1-i];          result[length-1-i] = temp;      }  }    int real_add(char *str1, char *str2, char *result, const bool fl

122、ag)  {      int len1 = strlen(str1);      int len2 = strlen(str2);      int n1, n2, another = 0;    //another表示進(jìn)位      int cur_rs = 0;        //表示result的當(dāng)前位數(shù) &

123、#160;    int i, j;      int curSum;      for(i = len1-1, j = len2-1; i >= 0 && j >= 0; i--, j--)      {          n1 = str1[i] - '0';     &

124、#160;    n2 = str2[j] - '0';          curSum = n1 + n2 + another;          result[cur_rs++] = curSum % 10 + '0';          another = curSum / 10;

125、     }        if(j < 0)      {          while(i >= 0)        //遍歷str1剩余各位          {     

126、;         n1 = str1[i--] - '0';              curSum = n1 + another;              result[cur_rs++] = curSum % 10 + '0'; &#

127、160;            another = curSum / 10;          }          if(another != 0)        //如果還有進(jìn)位未加上      &#

128、160;       result[cur_rs++] = another + '0';      }           else           {          while(j >= 0) &#

129、160;        {              n2 = str2[j--] - '0';              curSum = n2 + another;         &

130、#160;    result[cur_rs++] = curSum % 10 + '0';              another = curSum / 10;          }          if(another != 0)   &

131、#160;          result[cur_rs++] = another + '0';      }        result[cur_rs] = '\0';        cur_rs = remove_zero(result, cur_rs);      if(!fla

132、g)      {          result[cur_rs++] = '-';          result[cur_rs] = '\0';      }      reverse(result, strlen(result));    

133、  return cur_rs;  }      int real_minus(char *str1, char *str2, char *result)    //使用str1減去str2  {      char big[100], small[100];      int big_len, sml_len;        int len1 = strle

134、n(str1);      int len2 = strlen(str2);      bool flag = false;        //用于標(biāo)記str2是否比str1大        if(len1 < len2)          flag = true;    

135、;  else if(len1 == len2)      {          if(strcmp(str1, str2) == 0)          {              result[0] = '0';   

136、           result[1] = '\0';              return 1;          }else if(strcmp(str1,str2) < 0)        &

137、#160;     flag = true;      }        if(flag)    //將str1和str2交換,確保str1指向的值是其中較大者,最后通過(guò)flag確定要不要給前面加-號(hào)      {          char *temp = str1;    

138、      str1 = str2;          str2 = temp;          len1 = strlen(str1);          len2 = strlen(str2);      }     &#

139、160;  int n1, n2, another = 0;    //another表示是否有借位      int i, j;      int cur_rs = 0;      int curMinus;    for(i = len1-1, j = len2-1; i>=0 && j>=0; i--,j--)      { &#

140、160;        n1 = str1[i] - '0';          n2 = str2[j] - '0';          if(n1 >= n2+another)          {    &#

141、160;         result[cur_rs++] = (n1-n2-another) +'0';              another = 0;          }          else 

142、60;        {              result[cur_rs++] = (n1+10-n2-another) + '0';              another = 1;       &

143、#160;  }      }        while(i >= 0)      {          n1 = str1[i--] - '0';          if(another != 0)      &

144、#160;   {              n1 -= another;              another = 0;          }          re

145、sult[cur_rs++] = n1 + '0';      }        result[cur_rs] = '\0';      cur_rs = remove_zero(result, cur_rs);      if(flag)      {        &#

146、160; result[cur_rs++] = '-';          result[cur_rs] = '\0';      }      reverse(result, cur_rs);        return cur_rs;  }    void addi(const char *num1, co

147、nst char *num2, char *result)  {      int len1 = strlen(num1);      int len2 = strlen(num2);      int rs_len;      if(!len1 || !len2)              re

148、turn;      char str1[100], str2[100];      strncpy(str1, num1, len1);      str1[len1] = '\0';      strncpy(str2, num2, len2);      str2[len2] = '\0';      &#

149、160; if(str1[0] == '-' && str2[0] == '-')      {          move(str1, len1);          move(str2, len2);          rs_len = real_add(st

150、r1, str2, result, false);      }else if(str1[0] == '-')      {          move(str1, len1);          rs_len = real_minus(str2, str1, result);      }

151、      else if(str2[0] == '-')      {          move(str2, len2);          rs_len = real_minus(str1, str2, result);      }else    

152、0;     rs_len = real_add(str1, str2, result, true);  }    //int main(int argc, char *argv[])  int main()  {      char num1[100],num2[100];           printf("請(qǐng)輸入兩個(gè)整型數(shù)據(jù):\n");

153、           scanf("%s%s",num1,num2);             char result[100];      memset(result, 0, 100);      addi(num1,num2, result);     

154、printf("%s\n", result);        return 0;  } 11.描述:10個(gè)學(xué)生考完期末考試評(píng)卷完成后,A老師需要?jiǎng)澇黾案窬€,要求如下: (1) 及格線是10的倍數(shù); (2) 保證至少有60%的學(xué)生及格; (3) 如果所有的學(xué)生都高于60分,則及格線為60分 輸入:輸入10個(gè)整數(shù),取值0~100 輸出:輸出及格線,10的倍數(shù) #include<stdio.h>   void bubblesort(int arr

155、[]) {          int i,j,temp;          for(i=0;i<10;i++)                    for(j=0;j<9-i&&arr[j]>arr[j+1];j++

156、)                    {                             temp=arr[j];  &#

157、160;                          arr[j]=arr[j+1];                      &

158、#160;      arr[j+1]=temp;                    } }   int GetPassLine(int a[]) {          bubblesort(a);      &

159、#160;   if(a[0]>=60)                    return 60;          else                

160、;    return (((int)a[4]/10)*10); }   main() {          int a[10]={0};          int result;          printf("請(qǐng)隨機(jī)輸入10個(gè)成績(jī)(0-100):\n");  

161、0;       scanf("%d%d%d%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);          printf("\n");        

162、60; result=GetPassLine(a);          printf("及格線為:%d\n",result);          return 1; }   12.描述:一條長(zhǎng)廊里依次裝有n(1 ≤ n ≤ 65535)盞電燈,從頭到尾編號(hào)1、2、3、…n-1、n。每盞電燈由一個(gè)拉線開(kāi)關(guān)控制。開(kāi)始,電燈全部關(guān)著。 有n個(gè)學(xué)生從長(zhǎng)廊穿過(guò)。第一個(gè)學(xué)生把號(hào)碼凡是1的倍數(shù)的電燈的開(kāi)關(guān)拉一

163、下;接著第二個(gè)學(xué)生把號(hào)碼凡是2的倍數(shù)的電燈的開(kāi)關(guān)拉一下;接著第三個(gè)學(xué)生把號(hào)碼凡是3的倍數(shù)的電燈的開(kāi)關(guān)拉一下;如此繼續(xù)下去,最后第n個(gè)學(xué)生把號(hào)碼凡是n的倍數(shù)的電燈的開(kāi)關(guān)拉一下。n個(gè)學(xué)生按此規(guī)定走完后,長(zhǎng)廊里電燈有幾盞亮著。注:電燈數(shù)和學(xué)生數(shù)一致。 輸入:電燈的數(shù)量 輸出:亮著的電燈數(shù)量 樣例輸入:3 樣例輸出:1   #include<stdio.h> #define Max_Bubl_Num 65535   int GetLightLampNum(int n) {       &#

164、160;  int BublNum[Max_Bubl_Num]={0};  //0表示燈滅,1表示燈亮          unsigned int i,j;          unsigned int count=0;          for(i=1;i<=n;i++)     &#

165、160;              for(j=i;j<=n&&j%i==0;j++)                    {            &

166、#160;                BublNum[j-1]+=1;                             BublNum[j-1]=BublNum[j-

167、1]%2;                    }            for(int k=0;k<n;k++)          {         

168、;           if(BublNum[k]==1)                             count++;        

169、0; }          return count; } int main() {          int n,result;          printf("請(qǐng)輸入燈的數(shù)量(1-65535):\n");          scanf("%d",&n);          result=GetLightLampNum(n);          printf("最后亮燈的數(shù)量為:%d\n",result);    

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲