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

廣安c語言少兒編程模擬題

發布時間: 2023-05-12 13:59:25

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>
char *StrCat(char *s,char *t)
{
int i=0,j=0;
char *s1,*t1;
s1=s;t1=t;
for(;*s1;s1++,i++);
for(;*t1;t1++,j++);
if(i<=j)
{
for(;*t;)*s1++=*t++;*s1='\0';
return s;
}
else
{
for(;*s;)*t1++=*s++;*t1='\0';
return t;
}
}

int main(int argc, char *argv[])
{
char a[100],b[100];
scanf("%s",a);
scanf("%s",b);
printf("%s",StrCat(a,b));
return 0;
}

❹ C語言編程題

12.int main()

{
for(int i=1;i<=9;i++)
{
for(int j=i;j<=9;j++)
cout<<i<<"*"<<j<<"="<<i*j<<" ";
cout<姿跡攔<endl;
}

return 0;
}
13.int main()

{int count=0;
for(int i=1000;i<10000;i++)
if(i%10==8&&i%4==0)

count++;

cout<<count<<endl;

return 0;
}
7.
#define N 5
int main()

{int fish_num0=1,flag=0,fish_num;
while(flag!=1)
{ fish_num=fish_num0;
int count=0;
for(int i=N;i>=1&&fish_num/N>0;i--)
{
fish_num=fish_num-1;
if(fish_num%N==0&&fish_num/N>0) count++;
fish_num=fish_num/跡胡N*(N-1);
}
if(count==N) flag=1;
fish_num0++;
}

cout<<fish_num0-1<<endl;

return 0;
}
這是用C++寫州告的,在tc上運行時稍改一下輸入輸出函數即可!

❺ C語言編程題目

下面是一些C編程題目:1. 編寫程序,從鍵盤輸入兩個整數,輸出它們的和、差、積、商、余數。2. 編寫程序,從鍵盤輸入三角形的三條邊長,判斷它們是否可以構成三角形,並輸出三角形的類型(等邊、等腰、一般)。3. 編寫程序,從鍵盤輸入字元串,統櫻派計其中的大寫字母、小寫字母、數字和其他字元的個數,並輸出脊鉛賀結果。4. 編寫程序,從鍵盤輸入整數n,列印出n個斐波那契數列的數(斐波那契數列:1 1 2 3 5 8 13...,後數是前兩個數之和)。5. 編寫程序,從鍵盤輸入字元串,判斷它是否為迴文字元串(即正著讀和倒激信著讀都一樣),並輸出結果。6. 編寫程序,從鍵盤輸入整數n,列印出從1到n的所有素數(素數是只能被1和本身整除的數,如2、3、5、7、11等)。7. 編寫程序,從鍵盤輸入一組數據(1~100之間的整數),將它們存入數組中,並按從小到大的順序輸出。8. 編寫程序,從鍵盤輸入整數n,列印出n行的楊輝三角形。9. 編寫程序,實現冒泡排序(以升序為例)。10. 編寫程序,實現二分查找演算法(在有序數組中查找指定元素)。

❻ 自考「C語言程序設計」模擬試題一

一、填空題

1、C語言中基本的數據類型有:______、______ 、______ .

2、C語言中普通整型變數的類型說明符為______,在內存中占______位元組,有符號普通整型的數據范圍是______ .

3、整數-35在機內的補碼表示為______.

4、執行下列語句int a=8; a+=a-=a*a; 後,a的值是______.

5、有如下語句:char A[ ]={「I am a student」}; 該字元串的長度是______,A[3]=______.

6、符號「a」和『a』的區別是______.

7、所謂「指針」就是______.「&」運算符的作用是______.「*」運算符的作用是______.

8、有如下輸入語句:scanf(「a=%d,b=%d,c=%d」,&a,&b,&c);為使變數a的值為1,b的值為3,c的值為2,從鍵盤輸入數據的正確形式應是______.

二、選擇題

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

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

2、為猜銷了避免嵌套的條件分支語句if-else的二義性,C語言規定:C程序中的或兆芹else總是與( )組成配對關系。

A. 縮排位置相同的if B. 在其之前未配對的if

C. 在其之前未配對的最近的if D.同一行上的if

3、以下程序的輸出結果是( )。

int x=10,y=10;

printf(「%d %d\n」,x——,——y);

A. 10 10 B. 9 9 C. 9 10 D. 10 9

4、設A為存放(短)整型的一維數組,如果A的首地址為P,那麼A中第i 個元素的地址為( )。

A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i

5、選出下列標識衫畢符中不是合法的標識符的是( )。

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

6、以下程序的輸出結果是( )。

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

7、設有說明double(*p1)[N];其中標識符p1是( )。

A. N個指向double型變數的指針。

B. 指向N個double型變數的函數指針。

C. 一個指向由N個double型元素組成的一維數組的指針。

D.具有N個指針元素的一維指針數組,每個元素都只能指向double型量。

8、在C程序中有如下語句:char *func(int x,int y);它是( )。

A. 對函數func的定義。 B. 對函數func的調用。

C.對函數func的原型說明。 D. 不合法的。

9、以下程序的輸出結果是( )。

char str[15]=「hello!」;

printf(「%d\n」,strlen(str));

A. 15 B. 14 C. 7 D. 6

10、分析以下程序的輸出結果是( )。

main()

{int a=5,b=-1,c;

c=adds(a,b);

printf(「%d」,c);

c=adds(a,b);

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

int adds(int x,int y)

{static int m=0,n=3;

n*=++m;

m=n%x+y++;

return(m); }

A. 2,3 B. 2,2 C. 3,2 D. 2,4

11、下列描述中不正確的是( )。

A. 字元型數組中可能存放字元串。

B. 可以對字元型數組進行整體輸入、輸出。

C. 可以對整型數組進行整體輸入、輸出。

D. 不能在賦值語句中通過賦值運算符「=」對字元型數組進行整體賦值。

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 x=10,y=3,z;

則語句printf(「%d\n」,z=(x%y,x/y)); 的輸出結果是( )。

A. 1 B. 0 C. 4 D. 3

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

15、以下對二維數組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}};

16、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結果是( )。

int x;

scanf(「%d」,&x);

if(x++>5) printf(「%d」,x);

else printf(「%d\n」,x - -);

A. 7和5 B. 6和3 C. 7和4 D. 6和4

17、設有如下定義: char *aa[2]={「abcd」,「ABCD」}; 則以下說法中正確的是( )。

A)aa數組成元素的值分別是「abcd」和ABCD「

B)aa是指針變數,它指向含有兩個數組元素的字元型一維數組

C)aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的首地址

D)aa數組的兩個元素中各自存放了字元『a』和『A』的地址

18、下列程序的輸出結果是( )。

char *p1=「abcd」, *p2=「ABCD」, str[50]=「xyz」;

strcpy(str+2,strcat(p1+2,p2+1));

printf(「%s」,str);

A. xyabcAB B. abcABz C. ABabcz D. xycdBCD

19、下列程序的輸出結果是( )。

int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf(「%d」,*(p++));

printf(「%d\n」,* *k);

A. 4 4 B. 2 2 C. 2 4 D. 4 6

20、不能把字元串:Hello!賦給數組b的語句是( )。

A. char b[10]={『H』,『e』,『l』,『l』,『o』,『!』};

B. char b[10]; b=「Hello!」;

C. char b[10]; strcpy(b,「Hello!」);

D. char b[10]=「Hello!」;

三、讀程序題

1、float f=3.1415927;

printf(「%f,%5.4f,%3.3f」,f,f,f);

則程序的輸出結果是 .

2、int x=6, y=7;

printf(「%d,」,x++);

printf(「%d\n」,++y);

程序的輸出結果是 .

3、a=3;

a+=(a<1)?a:1;

printf(「%d」,a);

結果是.

4、for (a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{b+=3; continue;}

b-=5; }

程序的輸出結果a的值為 .

5、int y=1, x, *p, a[ ]={2,4,6,8,10};

p=&a[1];

for(x=0;x<3;x++)

y + = * (p + x);

printf(「%d\n」,y);

程序的輸出結果y的值是 .

四、程序填空題

1、從鍵盤上輸入10個數,求其平均值。

main()

{int i;

float f,sum;

for(i=1,sum=0.0;i<11;i++)

{ ;

; }

printf(「average=%f\n」,sum/10); }

2、以下程序是建立一個名為myfile的文件,並把從鍵盤輸入的字元存入該文件,當鍵盤上輸入結束時關閉該文件。

#include

main()

{ FILE *fp;

char c;

fp= ;

do{

c=getchar();

fputs(c,fp);

}while(c!=EOF);

}

3、以下程序的功能是:從鍵盤上輸入若干個學生的成績, 統計並輸出成績和最低成績,當輸入負數時結束輸入。請填空。

main()

{ float x,amax,amin;

scanf(「%f」,&x);

amax=x; amin=x;

while( )

{ if(x>amax) amax=x;

if( ) amin=x;

scanf(「%f」,&x); }

printf(「\namax=%f\namin=%f\n」,amax,amin); }

五、編程題

1. 三個整數a、b、c,由鍵盤輸入,輸出其中的一個數。

2.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)

3.請編一個函數int fun(int a),它的功能是:判斷a是否是素數,若a是素數,返回1;若不是素數,返回0.A的值由主函數從鍵盤讀入。

4.有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績的學生信息,包括學號、性別、姓名和平均成績。

❼ c語言編程題

這個是因為你的州拆語法錯誤
if
{
語句
}
else
{
語句

}
要這種方鉛跡裂式,你的是if(a<=1000) b= sqrt(a);這句判斷就結束了,和後面的else沒有關系了。要用{}把後槐閉面的語句括起來才可以。