程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> 求助C語言高手解答題

求助C語言高手解答題

編輯:C語言問答

求助C語言高手解答題

30

一.      選擇題 (共15題, 每題1分,共15分)

1. 定義結構體的關鍵字是( C )

   A. union       B. enum        C.struct       D.typedef

2. 設整型變量a為5,使b不為2的表達式是(  A  )

      A. b=a/2    B. b=6-(--a)    C. b=a%2    D. b=a>3?2:1

3. 下面哪一項是不正確的字符串賦值或賦初值的方法(  C )

A. char *str; str= “china”;  

B. char str[7]= {‘c’, ‘h’, ‘i’, ‘n’, ‘a’};

C. char str1[]= “china”,str2[]=“123”;

D. char str1[10]; str1= “china”;

4、以下程序中,while 循環的次數是( B )。

   #include <stdio.h>

   void main(void)

   {   int i = 0;

while (i<10) {

if (i<1) continue;

if (i==5) break;

i++;
       }

   }

   A) 1     B) 死循環,不能確定次數     C) 6     D) 10

5. 選出下列標識符中不是合法的標識符的是(    )

      A. hot_do      B. cat1       C. _pri         D. 2ab

6. 以下說法中正確的是(  B  )

A. C語言程序總是從第一個的函數開始執行

B. 在C語言程序中,要調用的函數必須在main()函數中定義

C. C語言程序總是從main()函數開始執行

D. C語言程序中的main()函數必須放在程序的開始部分

7. 若已定義:int a[9], *p=a;並在以後的語句中未改變p的值,不能表示a[1]地址的表達式為(     )

A. p+1          B. a+1          C. a++        D. ++p

8. 若有說明: int i,j=7, *p=&i;, 則與i=j; 等價的語句是(     )

A. i= *p;      B. *p=*&j;      C. i=&j;      D. i=* *p;

9. 若變量c為char類型,能正確判斷出c為小寫字母的表達式是(     )

A. ‘a’<=c<= ‘z’                 B. (c>= ‘a’) || (c<= ‘z’)

C. (‘a’<=c) and (‘z’>=c)       D. (c>= ‘a’) && (c<= ‘z’)

10. 以下程序的輸出結果是(     )

main()

{ int a[]={1,2,3,4,5,6,7,8,9}, *p;

p=a;

*(p+3)+=2;

printf( “%d,%d\n”,*p,*(p+3) ); }

       A. 0, 5     B. 1, 6      C. 1, 5     D. 0, 6

11. 以下程序的輸出結果是(     )

   main()

{ int a=5;

float x=3.14;

a*=x*(‘E’- ‘A’);

printf(“%f\n”,(float)a); }

A. 62.000000     B. 62.800000      C. 63.000000      D. 62

12. 定義如下變量和數組:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};

則語句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的輸出結果是(      )

A. 1 5 9            B. 1 4 7        C. 3 5 7           D. 3 6 9

13 下列程序段的輸出結果是 (   )

void main( )

{   int k;

for (k=1;k<5;k++)

{ if(k%2!=0)  

printf( “#” );

else   

printf(“*”) ; }

}

A. #*#*      B . *#*#    C. ##       D. **

14. 下列程序執行後輸出的結果是(     )

int d=1;

fun (int p)

{ int d=5;

d+=p++;

printf("%d,",d); }

main( )

{ int a=3;

fun(a);

d +=a++;

printf("%d\n",d); }

A. 8, 4       B. 9, 6     C. 9, 4     D. 8, 5

16、在下列選項中,不正確的賦值語句是(     )。
A) ++t;          B) n1=(n2=(n3=0));          C) k=i==j;          D) a=b+c=1;

 

 

二.           填空題(共7題,每空2分,共30分)

1.      數組 int a[3][5]; 共定義了_______________個元素。

2. 有float f=3.1415927; 則 printf(“%5.4f”, f );輸出的結果是_______________。

3. 下面程序的功能是:輸出 100以內(不包含100)能被 3整除且個位數為 6的所有整數,請填空。

main( )

{ int i;

for(i=1; _______________; i++)

if (_______________)

printf("%d", i);              

}

4. 設有“int x=2, y”說明,則逗號表達式“y=x+5,x+y”的值是       _______________

5. 以下是使用指針,進行字符串復制的程序,請填空。

main()

{ char a[]= “Tsinghua University”, b[30], *p1,*p2;

p1=a;

p2=b;

for(; *p1!= _______________; p1++, p2++)

   _______________=_______________;

     *p2= ______________;

printf(“string a is:%s\n”,a);

printf(“string b is:%s\n”,b);

}

6. 下面程序用冒泡法對數組a進行降序排序,請填空。

main()

   { int a[5]={4,7,2,5,1};

    int i,j,m;

   for(i=0;i<4;i++)

      for(j=0;j<_______________;j++)

    if(   _______________< _______________   )

   { m=a[ j];

     a[ j]=a[ j+1];   

   a[ j+1]= m; }  

      for(i=0;i<5;i++)  

printf("%d ",a[i]);

   }

7. 函數fun的功能是:使一個字符串按逆序存放,請填空。

void fun (char str[])

{ char m; int i,j;

for(i=0,j=strlen(str);i<_______________;i++,j--)

{ m=str[i];

   str[i]= _______________;

   str[j-1]=m;

   }

printf("the rotated string is %s\n",_______________);

}

三、編程題:5分

請使用指針完成3個數的大小比較並輸出。要求三個數從鍵盤輸入,使用函數完成大小比較。

最佳回答:

1.C   2.C(A中a/2==2,因為a和2是整型,小數被截斷..C中a%2==1)   3.D(str數數組,可以退化成常量指針,不可更改指向,更別說更改指向為“china”地址) 4.C(i=0~5) 5.D(變量名不能以數字常量開頭)

6.C(B中調用函數最好在函數外面main()之前先聲明好,這是好習慣) 7.C(a++不允許被進行,a是數組,退化成常量指針,不能更改指向(這裡更改指向為a+1))  8.B(*&j==j) 9.D   10.B(*(p+3)==a[3]) 

11.A(計算結果為62.800000,但a是整型,賦予a時小數被截斷,a==62,又以float方式輸出a,故為 62.000000     )  12.C   13.A(奇輸'#',偶輸'*')14.D(注意哪個d是哪個d)   16.D(b+c=1錯誤)

 

 

1.  15

2.  3.1415

3.  i<100  (!i%3)&&(i%10==6)

4. 9    (逗號表達式的值是最後一個逗號後面的表達式的值)

5. '\0'   *p2=*p1   '\0'

6.  4    a[i]   a[j]    (不知道降序是什麼,我按從大到小做了)

7.  ((float)i+(float)j)/2.0   str[j-1]   str

 

 

三..

#include<stdio.h>

void fun(int*[3]);
void main()
{
 int a[3],*p[3],i=0;
 for(;i<3;i++)
 {
  scanf("%d",&a[i]);
  p[i]=&a[i];
 }
 fun(p);
 printf("%d %d %d\n",*p[0],*p[1],*p[2]);
 getch();
}
void fun(int*p[3])
{
 int i=0,j;
 for(;i<3;i++)
  for(j=i;j<3;j++)
   if(*p[i]<*p[j])
    *p[i]+=*p[j],*p[j]=*p[i]-*p[j],*p[i]-=*p[j];
}

/*TC下運行通過**/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved