當前位置:首頁 » 編程語言 » C語言逆數對

C語言逆數對

發布時間: 2023-10-25 13:01:30

❶ C語言編程題逆序數(大數據)給你一個序列x1,x2,…,xn如果數對< xi,xj >其中i< j而xi> xj,稱為逆序數對

印象中好像是利用歸並排序的性質來做的……(好像)
假設排序a,b,c,d,e,f從小到大排
二分a,b,c / d,e,f (abc與def已分別排好序)

主要看前面的a,b,c,有新數組ar[],若最小為d
ar:d
第二小是a則
ar:d,a (這里a跨過了d,表明(a,d)是逆序的)
若:
ar:d,a,b,e,f,
最大是c,表明c跨過了def(5-2,不計ab),說明(c,d),(c,e),(c,f)是逆序
……
其實解題步驟就是歸並排序加上一些判斷與加減法
//註:不知道會不會超時呢

❷ 求一份C語言程序設計的期末考試試題!!!謝謝了

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

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

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

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

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

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

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. 以下對二維數組a進行正確初始化的是( )

A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6};

C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}};

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

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

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

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. 以下程序的輸出結果是( )

#define f(x) x*x

main()

{ int a=6,b=2,c;

c=f(a)/f(b);

printf(「%d\n」,c); }

A. 9 B. 6 C. 36 D. 18

13. 定義如下變數和數組: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

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

void main( )

{ int k;

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

{ if(k%2!=0)

printf( 「#」 );

else

printf(「*」) ; }

}

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

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

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

二. 填空題(共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",_______________);

}

熱點內容
創建資料庫過程 發布:2025-01-31 20:06:31 瀏覽:429
諾安成長與鑫靈活配置哪個好 發布:2025-01-31 19:58:54 瀏覽:604
b樹磁碟存儲 發布:2025-01-31 19:42:53 瀏覽:837
聯想小新air15怎麼配置環境 發布:2025-01-31 19:06:57 瀏覽:968
什麼配置玩3a 發布:2025-01-31 19:05:22 瀏覽:586
phpoa系統 發布:2025-01-31 18:58:42 瀏覽:10
值e的編程 發布:2025-01-31 18:57:06 瀏覽:977
安卓手機的軟體認證在哪裡 發布:2025-01-31 18:57:01 瀏覽:535
android彈出來 發布:2025-01-31 18:56:56 瀏覽:232
辦公室白領新解壓方法 發布:2025-01-31 18:55:23 瀏覽:558