當前位置:首頁 » 編程語言 » 巴中c語言少兒編程模擬題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

巴中c語言少兒編程模擬題

發布時間: 2023-02-01 00:55:13

c語言模擬題

一.選擇題:
1.B 2.D 3.A 4.B 5.D 6.B 7.B 8.A
二.讀程序:
1. 67,D 2. 3 3. 3 4. 3

❷ c語言模擬編程題

你大幾了?大一嗎?

❸ C語言 普及組的模擬題

一、選擇題(共20題,每題1.5分,共計30分。每題有5個備選答案,前10個題為單選題,即
每題有且只有一個正確答案,選對得分;後10題為不定項選擇題,即每題有1至5個正確答案,只
有全部選對才得分)。
1.微型計算機的性能主要取決於( )。
A)內存 B)主板 C)中央處理器 D)硬碟 E)顯示器

2. 128KB的存儲器用十六進製表示,它的最大的地址碼是( )
A)10000 B)EFFF C)1FFFF D)FFFFF E)FFFF

3.能將高級語言程序轉換為目標程序的是( ).
A)調試程序 B)解釋程序 C)編輯程序 D)編譯程序 E)連接程序

4.A=11001010B,B=00001111B,C=01011100B,則A∨B∧C=( )B
A)01011110 B)00001111 C)01011100 D)11001110 E)11001010

5.計算機病毒傳染的必要條件是( ) 。
A)在內存中運行病毒程序
B)對磁碟進行讀寫操作
C)在內存中運行含有病毒的可執行程序
D)復制文件
E)刪除文件

6. TCP/IP協議共有( )層協議
A)3 B)4 C)5 D)6 E)7

7.192.168.0.1是屬於( ).
A)A類地址 B)B類地址 B)C類地址 D)D類地址 E)E類地址

8.對給定的整數序列(54,73,21,35,67,78,63,24,89)進行從小到大的排序時,採用快速排序的第
一趟掃描的結果是( ).
A)(24,21,35,54,67, 78,63,73,89)
B)(24,35,21,54,67, 78,63,73,89)
C)(24,21,35,54,67, 63,73,78,89)
D)(21,24,35,54,63, 67,73,78,89)
E)(24,21,35,54,67, 63,73,78,89)

9.一棵n個結點的完全二叉樹,則二叉樹的高度h為( ).
A)n/2 B)log2n C)(log2n)/2 D) [log2n]+1 E)2n-1

10.下圖對該圖進行廣度優先拓樸排序得到的頂點序列正確的是( ).
A)1,2,3,4,5,6
B)1,3,2,4,5,6
C)1,3,2,4,6,5
D)1,2,3,4,6,5,
E)1,3,2,4,5,6

11.下列屬於馮.諾依曼計算機模型的核心思想是( ).
A)採用二進製表示數據和指令;
B)採用」存儲程序」工作方式
C)計算機硬體有五大部件(運算器、控制器、存儲器、輸入和輸出設備)
D)結構化程序設計方法
E)計算機軟體只有系統軟體

12.下列屬於輸入設備的是( ).
A)列印機 B)掃描儀 C)光筆 D)滑鼠 E)顯示器

13.算式(1000)10-(100)16-(10)8的結果是( ).
A)(890)10 B)(986)8 C)(1011100000)2 D)(2E0)16 E)(736)10

14.下面關於演算法的正確的說法是( )
A)演算法必須有輸出
B)演算法必須在計算機上用某種語言實現
C)演算法不一定有輸入
D)演算法必須在有限步執行後能結束
E)演算法的每一步驟必須有確切的定義

15.下列關於十進制數100的正確說法是( ).
A)原碼為01100100B
B)反碼為64H
C)反碼為9BH
D)補碼為64H
E)補碼為9BH

16.關於windows系統中的窗口和對話框的說法正確的是( ).
A)對話框能移動和改變大小
B)窗口能移動和改變大小
C)對話框只能移動和但不能改變大小
D)對話框不能移動但能改變大小
E)窗口能移動和但不能改變大小

17.下列邏輯運算正確的是( )。
A) A·(A + B )= A
B) A +(A·B)= A
C) A·(B + C )= A·B + A·C
D) A +(B·C)=(A + B)·(A + C)
E) A+1=A

18.下列關於排序說法正確的是( ).
A)插入排序、冒泡排序是穩定的
B)選擇排序的時間復雜性為O(n2)
C)選擇排序、希爾排序、快速排序、堆排序是不穩定的
D)希爾排序、快速排序、堆排序的時間復雜性為O(nlog2n)
E)快速排序是速度最快的排序

19.對於一個大小為3的棧,若輸入隊列為123456,則下列輸出隊列有可能的是( )。
A)123456 B)654321 C)432165 D)431256 E)321654

20. 設有一個含有13個元素的Hash表(0~12),Hash函數是:H(key)=key % 13,其中% 是求余數
運算。用二次探查法解決沖突,則對於序列(8、31、20、33、18、53、27),則下列說法正確
的是( ) 。
A)27在1號格子中
B)33在6號格子中
C)31在5號格子中
D)20在7號格子中
E)18在4號格子中

二.問題求解(5分*2=10分)
1.一個商場有m種顏色的小球,每種小球足夠多,在這m種小球中挑選n個小球的選法有多少種?
如 m=2,n=3 時有4種選法分別是:兩種小球的個數分別為03,12,21,30.問:當m=4,n=4時
選法數=__________。

2.如果一棵m度樹中有n1個度為1的結點,n2個度為2的結點,…….有
nm個度為m的結點,則該樹中葉結點的的個數=______________.
1、C語言中沒有邏輯量,在給出邏輯運算結果時,以 代表「真」,用 代表「假」。
2、一個C源程序中至少應包括一個 。
3、C源程序的基本單位是 。
4、為表示關系X≥Y≥Z,應使用C語言表達式 。
5、若有以下定義:double w[10];則w數組元素下標的上限是 ,下限是 。
6、若有以下定義:double w[5];則數組w下標的上限是 。
7、執行語句:for(i=1;i++<4;)後;變數i的值是 。
6、在C語言中的實型變數分為兩種類型,它們是 、 。
7、語句"printf("%x,%o",16,12);"的輸出結果是 。
8、當a=5,b=4,c=1時,表達式a>b!=c的值是 。
9、若有定義:char c=』\010』;則變數c中包含的字元數為 。
10、C語言中的標識符只能由三種字元組成,它們是 、 、 。
11、若k為int 型且賦值11。請寫出運算k++後表達式的值為 ,變數的值為 。
12、在C語言程序中,如果對函數f的類型未加顯說明,則函數f的隱含類型是 。
13、二維數組中元素在內存中的存放順序是 。
14、設有定義int a=12,b=12;則語句 printf("%d %d\n",--a,++b);的輸出結果是:

15、當a=3,b=2,c=1時,表達式f=a>b>c的值為______________________。
16、C語言中的文件類型有 、 。
二、選擇題
1、C語言可執行程序的開始執行點是( )
A、 程序中第一條可執行語言 B、 程序中第一個函數
C、 程序中的main函數 D、 包含文件中的第一個函數
2、以下敘述中不正確的是( )
A、在函數中,通過return語句傳回函數值
B、在函數中,可以有多條return語句
C、在C中,main後的一對圓括弧中也可以帶有形參
D、在C中,調用函數,必需在一條獨立的語句中完成
3、對C程序在作邏輯運算時判斷操作數真、假的表述,下列哪一個是正確的( )。
A、0為假,非0為真 B、只有1為真
C、-1為假,1為真 C、0為真,非0為假
4、以下字元中,不正確的C語言轉義字元是( )
A、『\t』 B、 『\011』 C、『\n』 D、 『\018
5、C語言中運算對象必需是整型的運算符是( )
A、% B、/ C、! D、**
6、putchar函數可以向終端輸出一個( )
A、整型變數表達式值 B、實型變數值
C、字元串 D、字元或字元型變數值
7、下列各語句定義了數組,其中哪一個是正確的( )。
A、int a[5],b[2,3]; B、char no(30);
C、int x[]; D、int x[5]={1,2,3};
8、數組定義為"int a[4][5];", 引用"*(a+1)+2"表示( )。
A、a[1][0]+2 B、 a數組第1行第2列元素的地址
C、a[0][1]+2 D、 a數組第1行第2列元素的值
9、a是int類型變數,c是字元變數。下列輸入語句中哪一個是錯誤的( )。
A、scanf ("%d, %c",&a, &c); B、scanf (" %d%c", a, c);
C、scanf (" %d%c", &a,&c ); D、scanf ( "d=% d, c=%c",&a, &c);
10、將整型變數a、b中的較小值為變數c賦值,下列語句中正確的是( )。
A、c= =(a<b)? a:b; B、c=if(a<b)a else b;
C、c=(a<b)? a:b; D、(a<b)? c=a:c=b;
11、將整型變數a、b中的較大值為變數c賦值,下列語句中正確的是( )。
A、c= =(a>b)? a:b; B、c=(a>b)? a:b;
C、c=if(a>b)a else b; D、(a>b)? c=a:c=b;
12、邏輯運算符中,運算優先順序按從高到低依次為( )。
A、&&, !, || B、||,&&, ! C、&&, ||, ! D、!,&&, ||
13、在C語言程序中( )
A、 函數的定義可以嵌套,但函數的調用不可以嵌套
B、 函數的定義和函數的調用均不可以嵌套
C、 函數的定義不可以嵌套,但函數的調用可以嵌套
D、 函數的定義和函數的調用均可以嵌套
14、C語言中的文件類型只有( )
A、索引文件和文本文件兩種 B、ASCII文件和二進制文件兩種
C、文本文件一種 D、 二進制文件一種
15、若變數已正確定義並賦值,符合C語言語法的表達式是( )
A、a=7+b+c,a++ B、a=a+7; C、int(12.3%4) D、a=a+7=c+b
16、設有int a[ ]={10,11,12},*p=&a[0];則執行完*p++;*p+=1;後a[0],a[1],a[2]的值依次是 ( )
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
17、已知ch是字元型變數,下面正確的賦值語句是( )
A、ch=』\123』 B、ch=』xfff』 C、ch=』\08』 D、ch=』\』
18、以下函數調用語句中,含有的實參個數是( )
A、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp5));
19、以下敘述中正確的是 ( )
A、 輸入項可以是一個實型常量,如 scanf("%f ",3.5);
B、 只有格式控制,沒有輸入項,也能正確輸入數據到內存,如: scanf("a=%d,b=%d");
C、 當輸入一個實型數據時,格式控制可以規定小數點後的位數,如:scanf("%4.2f",&f);
D、 當輸入數據時,必須指明變數地址,例如: scanf("%f",&f);
20、程序運行輸出了錯誤的結果,可以排除下列哪一個因素( )。
A.演算法錯誤 B、運行時輸入數據錯誤
C、未通過編譯 D、系統資源配置不當
21、要為字元型變數a賦初值,下列語句中哪一個是正確的( )。
A、char a=』3』; B、char a="3";
C、char a=%; D、char a=*;
22、數組定義為"int a[4][5];", 引用"a[1]+3"表示( )。
A、a數組第1行第3列元素的地址 B、a數組第1行第3列元素的值
C、a數組第4行的首地址 D、a數組第4列的首地址

三、程序閱讀
1、以下程序的輸出結果為 。
main()
{ int x=2;
while (x--);
printf(「%d\n」,x);
}
2、以下程序的運行結果是 。
main()
{ int m=5;
if (m++ > 5) printf(「%d\n」,m);
else printf(「%d\n」, m――);
}
3、當執行以下程序段後,i的值為 、j的值為 、k的值為 。
int a,b,c,d,i,j,k;
a=10; b=c=d=5; i=j=k=0;
for( ; a>b; ++b) i++;
while (a>++c) j++;
do k++; while (a>d++);
4、以下程序的輸出結果是 。
main()
{ int k=2,m=4,n=6;
int *pk=&k, *pm=&m, *p;
*(p=&n)=*pk*(*pm);
printf(「%d\n」,n);
}
5、以下程序的輸出結果是 。
fun1(int a, int b)
{ int c;
a+=a; b+=b;
c=fun2 ( a, b );
return c*c;
}
fun2( int a, int b)
{ int c;
c=a*b%3;
return c;
}
main()
{ int x=11,y=19;
printf(「%d\n」, fun1(x,y));
}
6、以下程序的輸出結果是 z= , r= 。
func(int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(「z=%d,r=%d\n」,z,r);
}
7、以下程序的輸出結果為 .
main()
{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];
for(i=0;i<2;i++)
{ if(i==0)
aa[i][i+1]=*p+1;
else ++p;
printf(「%d」,*p);
}
printf(「\n」);
}
8、下列程序運行的輸出結果: , 。
#define X 5
#define Y X+1
#define Z Y*X/2
main()
{ int a;
a=Y;
printf("%d,%d\n",Z,--a);
}
四、程序填空
findmax返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空 。
findmax(int s[ ], int t)
{ int k,p;
for(p=0, k=p; p<t; p++)
if (s[p]>s[k]) ;
return ;
}
有以下程序段:
s=1.0;
for (k=1; k<=n; k++) s=s+1.0/(k*(k+1));
printf(「%f\n」,s);
請填空,使下面的程序段的功能完全與之等同。
s=0.0;
;
k=0;
do
{ s=s+d;
;
d=1.0/(k*(k+1));
}
while( );
printf(「%f\n」,s);
3、 以下程序統計從終端輸入的字元中每個大寫字母的個數,4、 num[0]中統計字母A的個數,5、 其他依次類推。用回車符結束輸入,6、 請填空。
#include 「stdio.h」
#include 「ctype.h」
main()
{ int num[26]={0}, i ;
char c;
while(( )!=』\n』)
if (isupper(c)) num[ ]+=1;
for( i=0; i<26; i++)
if (num[i]) printf(「%c: %d\n」, i+』A』,num[i]);
}
4、以下fun函數的功能是將一個字元串的內容顛倒過來,請填空。
#include 「string.h」
void fun(char str[])
{ int i,j,k;
for(i=0,j= ; i<j; i++, )
{ k=str[i]; str[i]=str[j]; str[j]=k; }
}

5、以下程序的功能是:從鍵盤上輸入若干學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,amax,amin;
scanf(「%f」,&x);
amax=x; amin=x;
while( )
{ if ( x>amax ) amax=x;
else if (x<amin) ;
;
}
printf(「\namax=%f\namin=%f\n」,amax,amin);
}
6、輸入若干字元,分別統計數字字元的個數、英文字母的個數,當輸入換行符時輸出統計結果,運行結束。
#include <stdio.h>
void main()
{ char ch; ;
while(( )!='\n')
{if(ch>='0'&&ch<='9') s1++;
if((ch>='a' && ch<='z')|| ) s2++;}
printf(「%d,%d\n」,s1,s2);
}
編程題
輸入一行數字字元(以回車符結束輸入),請用數組元素作為計數器來統計每個數字字元的個數,並輸出統計結果。用下標為0的元素統計字元』0』的個數,下標為1的元素統計字元』1』的個數,…。
#include<stdio.h>
main()
{
}
2、下面findmax函數將計算數組中的最大元素及其下標值和地址值,請編寫*findmax()函數。
#include<stdio.h>
*findmax(int *s, int t, int *k)
{
}
main()
{ int a[10]={12,23,34,45,56,67,78,89,11,22},k,*add;
add=findmax(a,10,&k);
printf(「%d,%d,%o\n」,a[k],k,add);
}
3、編寫程序,求1-3+5-7+…-99+101的值。
#include <stdio.h>
main()
{ }
4、以下程序將字元串中的第m個字元開始的全部字元復製成另一個字元串,在主函數中輸入字元串及m的值並輸出復制結果,在被調用函數str中完成復制。請編寫str函數。
#include<stdio.h>
#include<string.h>
main()
{ int m;
char str1[80], str2[80];
printf(「Please input a string :\n」);
gets(str2);
printf(「Input m:\n」);
scanf(「%d」,&m);
if (strlen(str2)<m ) printf(「error input!\n」);
else
{ str(str1,str2,m);
printf(「Result is :%s\n」,str1);
}
}
void str(char *p1,char *p2,int m)
{
}
編寫函數invert將數組中的數按顛倒的順序重新存放。在操作時,只能藉助一個臨時存儲單元而不得另外開辟數組。
/*參數n為數組中的元素個數*/
void invert(int a[ ],int n)
{
}
6、函數maxmin完成的功能是:對傳送過來的三個數選出最大和最小數,並通過形參傳回調用函數。試編寫該函數,
main()
{ int a, b, c, max,min;
printf(「please input three integer:\n」);
scanf(「%d,%d,%d」,&a,&b,&c);
maxmin(a,b,c,&max,&min);
printf(「a=%d,b=%d,max=%d,min=%d\n」,a,b,c,max,min);
}
void maxmin(int a, int b, int c, int *max, int *min)
{
}

❹ 計算機二級考試C語言模擬試題二

1. 運算符________的優先順序最高。

A.[ ]

B. +=

C. ?:

D.++

2.main( )

{ int n; ( n=6*4,n+6),n*2; printf(“n=%d ”,n); }

此程序的輸出結果是______________.

A.30

B. 24

C. 60

D. 48

3.若有如下定義,則__________是對數組元素的正確的引用。.

int a[10] , *p ; p=a ;

A. *&a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4.設整型變數n的值為2,執行語句“n+=n-=n*n;”後,n的值是__________

A. 0

B. 4

C. - 4

D. 2

5.各種基本數據類型的存貯空間正確的長度排列為__________。

A.Char

C.Char

6.下面的變數說明中__________是正確的。

A.char:a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c

7.表達式y=(13>12?15:6>7?8:9)的值為____________ 。

A 9

B 8

C 15

D. 1

8.若x=5,y=3 則y*=x+5; y的值為___________.

A. 10

B. 20

C. 15

D. 30

9.能正確表示a和b同時為正或同時為負的邏輯表達式是_________。

A.a>=0||b>=0)&&(a<0 ||b<0)

B.(a>=0 && b>=0)&&(a<0 && b<0)

C.(a+b>0) &&(a+b<=0)

D. a*b>0

10.C語言中,合法的字元型常數是_________。

A.‘A’

B.“A”

C. 65

D. A

11.已有定義 int x=3, y=4, z=5;則表達式“!(x+y)+z-1&&y+z/2”的值是________。

A.6

B.0

C.2

D.1

12.若變數c為char類型,能正確判斷出c為小寫字母的表達式是_______。

A.’a’<=c<=’z’

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

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

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

13.設有定義:long x=-123456L; 則以下能夠正確輸出變數x值的語句是_______。

A.printf(“x=%d ”,x)

B.printf(“x=%ld ”,x)

C.printf(“x=l ”,x)

C.printf(“x=%D ”,x);

14.從循環體內某一層跳出,繼續執行循環外的語句是:___________。

A. break語句

B.return語句

C.continue語句

D.空語句。

15.C語言用_______表示邏輯“真”值。

A.true

B.t或y

C.非零整型值

D.整型值0

16.為了避免嵌套的條件分支語句if—else 的二義性,C語言規定:C程序中的else總是與_____組成配對關系。

A.縮排位置相同的if

B.在其之前未配對的if

C.在其之前未配對的最近的if

D.同一行上的if

17.在函數中默認存儲類型說明符的變數應該是________存儲類型。

A.內部靜態

B. 外部

C.自動

D. 寄存器

18.C語言中以只讀方式打開一個文件應選擇_______________參數。

A.“r”

B.“w”

C.“rb”

D.“a”

19.設有數組定義:char array[]=”student”;則數組所佔的存貯空間為__________。

A.6個位元組

B. 7個位元組

C. 8個位元組

D. 9個位元組

20.根據C語言的語法規則,下列________個是不合法標識符。

A.do

B. Name

C. R5

D. _exam

二、判斷題

1. C 語言源程序文件通過了編譯、連接之後 , 生成一個後綴為 .EXE 的文件。 ( )

2.在 C 程序中 , 函數既可以嵌套定義 , 也可以嵌套調用。( )

3.在 C 程序中 ,APH 和 aph 代表不同的變數。( )

4.表達式 0195 是一個八進制整數。( )

5.Continue語句的作用是結束本次循環。( )

6.Extern變數的.生命期是整個程序執行期。 ( )

7.C語言中字元串的結束符是’’。 ( )

8.利用fclose函數關閉已打開的文件。 ( )。

9.C程序總是從main( ) 函數的第一條語句開始執行的。( )

10.數組名代表數組的首地址。( )

三、填空題

1.C語言的預處理語句以__________開頭。

2.表達式7+10>2 && 25 %5的結果是_______________。

3.下列程序段是從鍵盤輸入的字元中統計數字字元的個數,用換行符結束循環。

Int n=0, ch; Ch=getchar( );

While( __________________ )

{ if ( ________________ ) n++; c=getchar( ); }

4.C語言中getchar() 函數的功能是_________________________。

5.int *p 的含義是______________________________。

6.定義fp為文件型指針變數的定義方法為_______________。

7.數組 int a[3][3];共定義了____________個數組元素。

四、讀程序題。

1. 改正下列程序中不正確的語句。

main( )

{ int a;

scanf(“%d”, a); if (a = 1) printf(“One ”) ; }

2.寫出下列程序的運行結果。

fun(int a, int b)

{ if(a>b) return (a);

Else return (b); }

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z); printf(“%d ”,r); }

3. 改正下列程序中不正確的語句。

main()

{ int n ;

float s=1.0;

for(n=10;n>1;n- -)

s=s+1/n;

printf(“%6.1f ”,s); }

4. 寫出下列程序的運行結果。

main()

{ int n;

For(n=3; n<=10; n++)

{ if(n%6= =0) break; Printf(“%d”,n); } }

5.寫出下列程序的運行結果。

#include “stdio.h”

Main()

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

int m,n,*p; p=&a[0]; m=*(p+1); n=*(p+4);

printf(“%d %d %d ”,*p,m,n); }

五、編程題

1. 編程計算下列表達式:s=n!(n從鍵盤上輸入)

2.輸出1—100之間不能被12整除的數。

3.從鍵盤上輸出10個整數存入一維數組中,按由大到小的順序輸出。

4.從鍵盤上輸入9個數,按3行3列的格式輸出。

5.編程將文件read.txt中的字元讀出顯示到屏幕上。

❺ c語言編程題目及答案

#include <stdio.h>
#include <math.h>
void main(void)
{
double a;

double b;

double c;/* 以上三個變數分別對應三邊 */

double sin_c;/* c邊對應角的正玄值 */

double cos_c;/*c邊對應角的余玄值*/

double cos_a;

double area; /* 三角形的面積 */

printf("輸入a,b,c:");

scanf("%lf, %lf, %lf", &a, &b, &c);

if(((a+b)>c) && (a-b)<c)
{
printf("三邊能夠成三角形\n.");

cos_c = (a*a + b*b -c*c)/(2*a*b);

cos_a = (b*b + c*c - a*a)/(2*b*c);

if ((cos_c > 0) && (cos_a >0))
{
printf("三角形是銳角三角形。\n");
}

else if ((cos_c < 0) || (cos_a < 0))
{
printf("三角形是鈍角三角形\n");
}
else
{
printf("三角形是直角三角形\n");
}

sin_c = sqrt(1- cos_c*cos_c);

area = a*b*sin_c/2;

printf("三角形的面積是%f.\n",area);
}
else
{
printf("三邊不能構成三角形\n");
}
}

❻ 誰給我提供一套C語言編程題庫

題目:列印出楊輝三角形(要求列印出10行如下圖)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
2.程序源代碼:
main()
{int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)
printf("]",a[i][j]);
printf("\n");
}
}
==============================================================
【程序62】
題目:學習putpixel畫點。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#include "graphics.h"
main()
{
int i,j,driver=VGA,mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=50;i<=230;i+=20)
for(j=50;j<=230;j++)
putpixel(i,j,1);
for(j=50;j<=230;j+=20)
for(i=50;i<=230;i++)
putpixel(i,j,1);
}
==============================================================
【程序63】
題目:畫橢圓ellipse
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
main()
{
int x=360,y=160,driver=VGA,mode=VGAHI;
int num=20,i;
int top,bottom;
initgraph(&driver,&mode,"");
top=y-30;
bottom=y-30;
for(i=0;i{
ellipse(250,250,0,360,top,bottom);
top-=5;
bottom+=5;
}
getch();
}
==============================================================
【程序64】
題目:利用ellipse and rectangle 畫圖。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
main()
{
int driver=VGA,mode=VGAHI;
int i,num=15,top=50;
int left=20,right=50;
initgraph(&driver,&mode,"");
for(i=0;i{
ellipse(250,250,0,360,right,left);
ellipse(250,250,0,360,20,top);
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
right+=5;
left+=5;
top+=10;
}
getch();
}
==============================================================
【程序65】
題目:一個最優美的圖案。
1.程序分析:
2.程序源代碼:
#include "graphics.h"
#include "math.h"
#include "dos.h"
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include "stdarg.h"
#define MAXPTS 15
#define PI 3.1415926
struct PTS {
int x,y;
};
double AspectRatio=0.85;
void LineToDemo(void)
{
struct viewporttype vp;
struct PTS points[MAXPTS];
int i, j, h, w, xcenter, ycenter;
int radius, angle, step;
double rads;
printf(" MoveTo / LineTo Demonstration" );
getviewsettings( &vp );
h = vp.bottom - vp.top;
w = vp.right - vp.left;
xcenter = w / 2; /* Determine the center of circle */
ycenter = h / 2;
radius = (h - 30) / (AspectRatio * 2);
step = 360 / MAXPTS; /* Determine # of increments */
angle = 0; /* Begin at zero degrees */
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */
points[i].x = xcenter + (int)( cos(rads) * radius );
points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );
angle += step; /* Move to next increment */
}
circle( xcenter, ycenter, radius ); /* Draw bounding circle */
for( i=0 ; ifor( j=i ; jmoveto(points[i].x, points[i].y); /* Move to beginning of cord */
lineto(points[j].x, points[j].y); /* Draw the cord */
} } }
main()
{int driver,mode;
driver=CGA;mode=CGAC0;
initgraph(&driver,&mode,"");
setcolor(3);
setbkcolor(GREEN);
LineToDemo();}
==============================================================
【程序66】
題目:輸入3個數a,b,c,按大小順序輸出。
1.程序分析:利用指針方法。
2.程序源代碼:
/*pointer*/
main()
{
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf("please input 3 number:n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2) swap(pointer1,pointer2);
if(n1>n3) swap(pointer1,pointer3);
if(n2>n3) swap(pointer2,pointer3);
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
}
swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
==============================================================
【程序67】
題目:輸入數組,最大的與第一個元素交換,最小的與最後一個元素交換,輸出數組。
1.程序分析:譚浩強的書中答案有問題。
2.程序源代碼:
main()
{
int number[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{int i;
for(i=0;i<9;i++)
scanf("%d,",&number[i]);
scanf("%d",&number[9]);
}
max_min(array)
int array[10];
{int *max,*min,k,l;
int *p,*arr_end;
arr_end=array+10;
max=min=array;
for(p=array+1;p if(*p>*max) max=p;
else if(*p<*min) min=p;
k=*max;
l=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output(array)
int array[10];
{ int *p;
for(p=array;p printf("%d,",*p);
printf("%d\n",array[9]);
}
==============================================================
【程序68】
題目:有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數
1.程序分析:
2.程序源代碼:
main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("%d",&n);
printf("back m:");
scanf("%d",&m);
for(i=0;i scanf("%d,",&number[i]);
scanf("%d",&number[n-1]);
move(number,n,m);
for(i=0;i printf("%d,",number[i]);
printf("%d",number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
int *p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0) move(array,n,m);
}
==============================================================
【程序69】
題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出
圈子,問最後留下的是原來第幾號的那位。
1. 程序分析:
2.程序源代碼:
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf("please input the total of numbers:");
scanf("%d",&n);
p=num;
for(i=0;i *(p+i)=i+1;
i=0;
k=0;
m=0;
while(m {
if(*(p+i)!=0) k++;
if(k==3)
{ *(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;
printf("%d is left\n",*p);
}
==============================================================
【程序70】
題目:寫一個函數,求一個字元串的長度,在main函數中輸入字元串,並輸出其長度。
1.程序分析:
2.程序源代碼:
main()
{
int len;
char *str[20];
printf("please input a string:\n");
scanf("%s",str);
len=length(str);
printf("the string has %d characters.",len);
}
length(p)
char *p;
{
int n;
n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
【程序71】
題目:編寫input()和output()函數輸入,輸出5個學生的數據記錄。
1.程序分析:
2.程序源代碼:
#define N 5
struct student
{ char num[6];
char name[8];
int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}
print(stu)
struct student stu[];
{ int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}
main()
{
input();
print();
}
==============================================================
【程序72】
題目:創建一個鏈表。
1.程序分析:
2.程序源代碼:
/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
else ptr=ptr->next;
}
ptr=head;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
}
}
==============================================================
【程序73】
題目:反向輸出一個鏈表。
1.程序分析:
2.程序源代碼:
/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head,tail;
int num,i;
tail=(link)malloc(sizeof(node));
tail->next=NULL;
ptr=tail;
printf("\nplease input 5 data==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
}
ptr=ptr->next;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
}}
==============================================================
【程序74】
題目:連接兩個鏈表。
1.程序分析:
2.程序源代碼:
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
tmp->next=NULL;
else /*delete the other node*/
tmp->next=tmp->next->next;
return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
int i,min;
for(i=0;i {
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{ if(min>tmp->next->data)
{min=tmp->next->data;
btmp=tmp;
}
tmp=tmp->next;
}
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{ link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i{ tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{ link tmp;
tmp=pointer1;
while(tmp->next)
tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main(void)
{ int arr1[]={3,12,8,9,11};
link ptr;
ptr=create_list(arr1,5);
selection_sort(ptr,5);
}
==============================================================
【程序75】
題目:放鬆一下,算一道簡單的題目。
1.程序分析:
2.程序源代碼:
main()
{
int i,n;
for(i=1;i<5;i++)
{ n=0;
if(i!=1)
n=n+1;
if(i==3)
n=n+1;
if(i==4)
n=n+1;
if(i!=4)
n=n+1;
if(n==3)
printf("zhu hao shi de shi:%c",64+i);
}
}
==============================================================
【程序76】
題目:編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數
1/1+1/3+...+1/n(利用指針函數)
1.程序分析:
2.程序源代碼:
main()
#include "stdio.h"
main()
{
float peven(),podd(),dcall();
float sum;
int n;
while (1)
{
scanf("%d",&n);
if(n>1)
break;
}
if(n%2==0)
{
printf("Even=");
sum=dcall(peven,n);
}
else
{
printf("Odd=");
sum=dcall(podd,n);
}
printf("%f",sum);
}
float peven(int n)
{
float s;
int i;
s=1;
for(i=2;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float podd(n)
int n;
{
float s;
int i;
s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float (*fp)();
int n;
{
float s;
s=(*fp)(n);
return(s);
}
==============================================================
【程序77】
題目:填空練習(指向指針的指針)
1.程序分析:
2.程序源代碼:
main()
{ char *s[]={"man","woman","girl","boy","sister"};
char **q;
int k;
for(k=0;k<5;k++)
{ ;/*這里填寫什麼語句*/
printf("%s\n",*q);
}
}
==============================================================
【程序78】
題目:找到年齡最大的人,並輸出。請找出程序中有什麼問題。
1.程序分析:
2.程序源代碼:
#define N 4
#include "stdio.h"
static struct man
{ char name[20];
int age;
} person[N]={"li",18,"wang",19,"zhang",20,"sun",22};
main()
{struct man *q,*p;
int i,m=0;
p=person;
for (i=0;i{if(mage)
q=p++;
m=q->age;}
printf("%s,%d",(*q).name,(*q).age);
}
==============================================================
【程序79】
題目:字元串排序。
1.程序分析:
2.程序源代碼:
main()
{
char *str1[20],*str2[20],*str3[20];
char swap();
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str1,str3)>0) swap(str1,str3);
if(strcmp(str2,str3)>0) swap(str2,str3);
printf("after being sorted\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
}
char swap(p1,p2)
char *p1,*p2;
{
char *p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
==============================================================
【程序80】
題目:海灘上有一堆桃子,五隻猴子來分。第一隻猴子把這堆桃子憑據分為五份,多了一個,這只
猴子把多的一個扔入海中,拿走了一份。第二隻猴子把剩下的桃子又平均分成五份,又多了
一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五隻猴子都是這樣做的,
問海灘上原來最少有多少個桃子?
1.程序分析:
2.程序源代碼:
main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d\n",count);
break;}
}
}
【程序81】
題目:809*??=800*??+9*??+1 其中??代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??後的結果。
1.程序分析:
2.程序源代碼:
output(long b,long i)
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
}
main()
{long int a,b,i;
a=809;
for(i=10;i<100;i++)
{b=i*a+1;
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)
output(b,i); }
}
==============================================================
【程序82】
題目:八進制轉換為十進制
1.程序分析:
2.程序源代碼:
main()
{ char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}
==============================================================
【程序83】
題目:求0—7所能組成的奇數個數。
1.程序分析:
2.程序源代碼:
main()
{
long sum=4,s=4;
int j;
for(j=2;j<=8;j++)/*j is place of number*/
{ printf("\n%ld",sum);
if(j<=2)
s*=7;
else
s*=8;
sum+=s;}
printf("\nsum=%ld",sum);
}
==============================================================
【程序84】
題目:一個偶數總能表示為兩個素數之和。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#include "math.h"
main()
{ int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{ for(c=2;c<=sqrt(b);c++)
if(b%c==0) break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0) break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
==============================================================
【程序85】
題目:判斷一個素數能被幾個9整除
1.程序分析:
2.程序源代碼:
main()
{ long int m9=9,sum=9;
int zi,n1=1,c9=1;
scanf("%d",&zi);
while(n1!=0)
{ if(!(sum%zi))
n1=0;
else
{m9=m9*10;
sum=sum+m9;
c9++;
}
}
printf("%ld,can be divided by %d \"9\"",sum,c9);
}
==============================================================
【程序86】
題目:兩個字元串連接程序
1.程序分析:
2.程序源代碼:
#include "stdio.h"
main()
{char a[]="acegikm";
char b[]="bdfhjlnpq";
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{if (a[i] { c[k]=a[i];i++;}
else
c[k]=b[j++];
k++;
}
c[k]='\0';
if(a[i]=='\0')
p=b+j;
else
p=a+i;
strcat(c,p);
puts(c);
}
==============================================================
【程序87】
題目:回答結果(結構體變數傳遞)
1.程序分析:
2.程序源代碼:
#include "stdio.h"
struct student
{ int x;
char c;
} a;
main()
{a.x=3;
a.c='a';
f(a);
printf("%d,%c",a.x,a.c);
}
f(struct student b)
{
b.x=20;
b.c='y';
}
==============================================================
【程序88】
題目:讀取7個數(1—50)的整數值,每讀取一個值,程序列印出該值個數的*。
1.程序分析:
2.程序源代碼:
main()
{int i,a,n=1;
while(n<=7)
{ do {
scanf("%d",&a);
}while(a<1||a>50);
for(i=1;i<=a;i++)
printf("*");
printf("\n");
n++;}
getch();
}
==============================================================
【程序89】
題目:某個公司採用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:
每位數字都加上5,然後用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
1.程序分析:
2.程序源代碼:
main()
{int a,i,aa[4],t;
scanf("%d",&a);
aa[0]=a;
aa[1]=a0/10;
aa[2]=a00/100;
aa[3]=a/1000;
for(i=0;i<=3;i++)
{aa[i]+=5;
aa[i]%=10;
}
for(i=0;i<=3/2;i++)
{t=aa[i];
aa[i]=aa[3-i];
aa[3-i]=t;
}
for(i=3;i>=0;i--)
printf("%d",aa[i]);
}
==============================================================
【程序90】
題目:專升本一題,讀結果。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#define M 5
main()
{int a[M]={1,2,3,4,5};
int i,j,t;
i=0;j=M-1;
while(i {t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
i++;j--;
}
for(i=0;i printf("%d",*(a+i));
}
【程序91】
題目:時間函數舉例1
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#include "time.h"
void main()
{ time_t lt; /*define a longint time varible*/
lt=time(NULL);/*system time and date*/
printf(ctime(<)); /*english format output*/
printf(asctime(localtime(<)));/*tranfer to tm*/
printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/
}
==============================================================
【程序92】
題目:時間函數舉例2
1.程序分析:
2.程序源代碼:
/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{ time_t start,end;
int i;
start=time(NULL);
for(i=0;i<3000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=time(NULL);
printf("\1: The different is %6.3f\n",difftime(end,start));
}
==============================================================
【程序93】
題目:時間函數舉例3
1.程序分析:
2.程序源代碼:
/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{ clock_t start,end;
int i;
double var;
start=clock();
for(i=0;i<10000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=clock();
printf("\1: The different is %6.3f\n",(double)(end-start));
}
==============================================================
【程序94】
題目:時間函數舉例4,一個猜數游戲,判斷一個人反應快慢。(版主初學時編的)
1.程序分析:
2.程序源代碼:
#include "time.h"
#include "stdlib.h"
#include "stdio.h"
main()
{char c;
clock_t start,end;
time_t a,b;
double var;
int i,guess;
srand(time(NULL));
printf("do you want to play it.('y' or 'n') \n");
loop:
while((c=getchar())=='y')
{
i=rand()0;
printf("\nplease input number you guess:\n");
start=clock();
a=time(NULL);
scanf("%d",&guess);
while(guess!=i)
{if(guess>i)
{printf("please input a little smaller.\n");
scanf("%d",&guess);}
else
{printf("please input a little bigger.\n");
scanf("%d",&guess);}
}
end=clock();
b=time(NULL);
printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);
printf("\1: it took you %6.3f seconds\n\n",difftime(b,a));
if(var<15)
printf("\1\1 You are very clever! \1\1\n\n");
else if(var<25)
printf("\1\1 you are normal! \1\1\n\n");
else
printf("\1\1 you are stupid! \1\1\n\n");
printf("\1\1 Congralations \1\1\n\n");
printf("The number you guess is %d",i);
}
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
if((c=getch())=='y')
goto loop;
}
==============================================================

❼ C語言編程題2道!急!!!!!!!

1:
#include<stdio.h>
int main()
{
int a[10];
int i;
int max = 0;
int min = 100;
int maxi=0;
int mini =0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]<min)
{
min = a[i];
mini = i;
}
if(a[i]>max)
{
max = a[i];
maxi = i;
}
}
int sum =0;
for(i=0;i<10;i++)
{
if(i != mini && i != maxi)
{
sum +=a[i];
}
}
float ave = sum*1.0/8;
printf("%f",ave);
return 0;
}

2:
#include<stdio.h>
int main()
{
char sstr[100];
scanf("%s",sstr);
int count =0;
int i=0;
while(sstr[i] != '\0')
{
if(sstr[i] == ',')
{
count++;
}
i++;
}
printf("%d",count+1); //+1是計算最後一個逗號的後的單詞。
return 0;
}
運行效果:
qw,er,ty,ty
4