1. c語言習題 麻煩高手來做一下
14:
1#include<stdio.h>
main()
{ int i,j;
for(i=0;i<9;i++)
{ j=i*10+6;
if(j%3==0)
printf("%d\n",j);
continue;
}
}
2)#include<stdio.h>
main()
{ int j,s,p,n;
scanf("%d",&n);
for(s=p=0,j=1;j<=n;j++)
{p=p+j;
s=s+p;
}
printf("%d",s);
}
13
#include<stdio.h>
void main()
{int i,a,b,c,d,e,n;
for(i=10000;i<=99999;i++)
{ a=i/10000;
b=i/1000%10;
c=i/100%10;
d=i/10%10;
e=i%10;
if (a==e&&b==d)
printf("%-8d",i);
n++;
}
if(n%5==0) printf("\n");
}
12
#include <stdio.h>
void main()
{
long int num;
int indiv,ten,hundred,thousand,tenthousand,place;
printf("請輸入一個整數(0-99999):");
scanf("%ld",&num);
if(num>9999)
place=5;
else if(num>999)
place=4;
else if(num>99)
place=3;
else if(num>9)
place=2;
else place=1;
printf("place=%d\n",place);
printf("每位數字為:");
tenthousand=num/10000;
thousand=(num-tenthousand*10000)/1000;
hundred=(num-tenthousand*10000-thousand*1000)/100;
ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;
indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case 5: printf("%d,%d,%d,%d,%d",tenthousand,thousand,hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,tenthousand);
break;
case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d\n",indiv,ten,hundred);
case 2:printf("%d,%d\n",ten,indiv);
printf("\n反序數字為:");
printf("%d%d\n",indiv,ten);
case 1:printf("%d\n",indiv);
printf("\n反序數字為:");
printf("%d\n",indiv);
}
}
11
#include<stdio.h>
main()
{ int n;
printf("請輸入 ASCII碼值:\n");
scanf("%d",&n);
if(n<32)
printf("這是一個控制字元");
else if(n>=48&&n<=57)
printf("這是一個數字");
else if(n>=65&&n<=90)
printf("這是一個大寫字母");
else if(n>=97&&n<=122)
printf("這是一個小寫字母");
}
10
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
9
#include<stdio.h>
main()
{ int n;
printf("請輸入年份:\n");
scanf("%d",&n);
if((n%400==0)||(n%4==0)&&(n%100!=0))
printf("這一年是閏年\n");
else
printf("這一年不是閏年\n");
}
2. 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)
{
}
3. 有關C語言試題
你看這行嗎? C語言試題(10)選擇題(50×2=100)1.以下敘述正確的是( )。A)在C程序中,main函數必須位於程序的最前面B)C程序的每行中只能寫一條語句C)C語言本身沒有輸入輸出語句D)在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤2.C語言規定:在一個源程序中,main函數的位置( )。A)必須在最開始 B)必須在系統調用的庫函數的後面C)可以任意 D)必須在最後3.在C語言中(以16位PC機為例),5種基本數據類型的存儲空間長度的排列順序為( )。A)char<int <1ong int<=float<doubleB)char=int<1ong int<=float<doubleC)char< int <1ong int=float=doubleD)char=int =1ong int<=float<double4.假設所有變數均為整型,則表達式(a=2,b=5,b++,a+b)的值是( )。 A)7 B)8 C)6 D)25.下面四個選項中,均是C語言關鍵字的選項是( )。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type6.C語言中的標識符只能由字母、數字和下劃線三種字元組成,且第一個字元( )。 A)必須為字母 B)必須為下劃線 C)必須為字母或下劃線 D)可以是字母,數字和下劃線中任一種字元7.下面四個選項中,均是不合法的轉義字元的選項是( )。 A)'\'' B)'\1011' C)'\011' D)'\abc' '\\' '\' '\f' '\101'8.若有代數式3ae/bc,則不正確的C語言表達式是( )。 A) a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*39.已知各變數的類型說明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;則以下符合C語言語法的表達式是( )。A) a+=a-=(b= 4)*(a=3) B)a=a*3=2C) x%(-3) D)y=f1oat(i)10.以下正確的敘述是( )。A)在C程序中,每行中只能寫一條語句B)若a是實型變數,C程序中允許賦值a=10,因此實型變數中允許存放整型數C)在C程序中,無論是整數還是實數,都能被准確無誤地表示D)在C程序中,%是只能用於整數運算的運算符11.已知字母A的ASCII碼為十進制數65,且c2為字元型,則執行語句c2='A'+'6'-'3';後,c2中的值為( )。A)D B)68 C)不確定的值 D)C12.若以下變數均是整型,且num=sum=7;則執行表達式sum=num++,sum++,++num後sum的值為( )。 A) 7 B) 8 C) 9 D) 1013.若有說明語句:char c='\72'則變數c( )。A)包含1個字元 B)包含2個字元C)包含3個字元 D)說明不合法,c的值不確定14.下面四個選項中,均是非法常量的選項是( )。A)'as' B)'\\' c)-0xl8 D)0xabc -0fff '\01' 01177 '\0' '\0xa' 12,456 0xf "a"15.設變數n為f1oat類型,m為int類型,則以下能實現將n中的數值保留小數點後兩位,第三位進行四舍五人運算的表達式是( )。A) n=(n*100+0.5)/100.0 B)m=n*100+0.5 ,n= m/100.0C) n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.016.設C語言中,一個int型數據在內存中佔2個位元組,則unsigned int型數據的取值范圍為( )。A) 0~255 B) 0~32767 C) 0~65535 D) 0~214748364717.若有以下定義,則能使值為3的表達式是( )。int k= 7,x =12;A) x%=(k%= 5) B) x%=(k一k%5)C) x%=k- k%5 D) (x%=k)一(k%=5)18.putchar函數可以向終端輸出一個( )。A)整型變數表達式值B)實型變數值C)字元串D)字元或字元型變數值19.printf函數中用到格式符%5s ,其中數字5表示輸出的字元串佔用5列。如果字元串長度小於5,則輸出按方式( )。A)從左起輸出該字串,右補空格B)按原字元長從左向右全部輸出C)右對齊輸出該字串,左補空格D)輸出錯誤信息20.若x ,y均定義為int型,z定義為double型,以下不合法的scanf函數調用語句是( )。A) scanf(" %d%lx,%le",&x,&y,&z);B) scanf("%2d * %d%lf"&x,&y,&z ); C) scanf("%x %* d%o",&x,&y);D) scanf("%x%o%6.2f",&x,&y,&z); 21.已有定義int x; f1oat y;且執行scanf("%3d%f",&x,&y);語句,若從第一列開始輸入數據12345 678(回車),則x 的值為( )。A)12345 B)123 C) 45 D) 345 22.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當從第一列開始輸入數據時,正確的數據輸入方式是( )。int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2); A) 1020AB<CR> B)10 20<CR>AB<CR> C)10 20 AB<CR> D)10 20AB<CR>23.以下能正確地定義整型變數a,b和c 並為其賦初值5的語句是( )。 A)int a=b= c= 5; B) int a,b, c= 5; C)a= 5,b=5,c=5; D) a= b= c=5;24.已知ch是字元型變數,下面正確的賦值語句是( )。A) ch= '123'; B) ch= '\xff'; C) ch= '\08'; D) ch="\";25.設x 、y均為f1oat型變數,則以下不合法的賦值語句是( )。A)++x; B)y=(x%2)/10; C) x*=y+8; D)x=y=0;26.邏輯運算符兩側運算對象的數據類型( )。 A)只能是0或1 B)只能是0或非0正數 C)只能是整型或字元型數據 D)可以是任何類型的數據27.下列運算符中優先順序最高的是( )。 A)< B)十 C)&& D)!=28.設x,y 和z是int型變數,且x = 3,y= 4,z= 5,則下面表達式中值為0的是( )。 A)'y'&&'y' B)x < =y C) x||y+z&&y-z D) !(x<y)&&!z||1)29.判斷char型變數c1是否為小寫字母 正確表達式為( )。 A)' a' <=cl<=' z' B) (cl> = a)&&(cl<=z) C)(' a' >=cl)||(' z' < = cl) D)(c1>='a')&&(cl<='z')30.執行以下語句後a的值為( )。int a,b,c;a= b= c= 1;++a||++b&&++c A)錯誤 B) 0 C) 2 D) 131.以下符合c語言語法的賦值表達式是( )。A)d=9+e+f=d+9 B)J=9+e,f=d+9C)d=9+e,e++,d+9 D)d=9+e++=d+732.若有代數式3ae/bc,則不正確的c語言表達式是( )。A)a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*e33.已知各變數的類型說明如下int k,a,b; unsigned long w=5double x=1.422;則以下不符合c語言語法的表達式是( )。A)x%(-3) B)w+=-2C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)x(a=3)34.已知字母A的ASCII碼為+進制數65,且c2為字元型,則執行語句c2='A'+'6'-'3';後,c2中的值為( )。A)D B) 68C)不確定的值 D)C35.若有以下定義:int a,b ;float x;,則正確的賦值語句是( )。A)a=1,b=2, B)b++;C)a=b=5 D)b=int(x)36.c語言中的標識符只能由字母、數字和下劃線三種字元組成,且第一個字元( )。A)必須為字母B)必須為下劃線C)必須為字母或下劃線D)可以是字母、數字和下劃線中任-種字元37.在c語言中,char型數據在內存中的存儲形式是( )。A)補碼 B)反碼 C)原碼 D)ASCII碼38.若有說明語句:char c='72';則變數c( )。A)包含1個字元 B)2個字元C)包含3個字元 D)說明不合法,c的值不確定39.己知各變數的類型說明如下:int i=8,k,a,b;unsigned long w=55double x=1.42,y=5.2則以下符合c語言語法的表達式是( )。A)+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)40.若以下變數均是整型,且num=sum=7;則執行表達式sum=num++, sum++,++num後sum的值為( )。A)7 B)8 C)9 D)1041.若有定義:int a=7;folat x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是( )。A)2.500000 B)2.750000 C)3.500000 D)0.00000042.設有說明:char w;int x,float y;double z; 則表達式w*x+z-y值的數據類型為( )。A)float B)char C) int D)double43.設變數n為float類型,m為int 類型,則以下能實現將n中的數值保留小數點後兩位,第三位進行四捨五入運算的表達式是( )。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.044.以下關於運算符優先順序的描述中正確的是( )。A)關系運算符<算術運算符<賦值運算符<邏輯與運算符B)邏輯與運算符<關系運算符<算術運算符<賦值運算符C)賦值運算符<遲輯與運算符<關系運算符<算術運算符D)算術運算符<關系運算符<賦值運算符<邏輯與運算符45.判斷char型變數ch是否為大寫字母的正確表達式是( )。A) 'A'<=ch<='Z' B)(ch>='A')&(ch<='Z')C)(ch>='A')&&(ch<+'Z') D)('A'<=ch)AND('Z'>=ch46.下列運算符中優先順序最高的是( )。A)< B)+ C)&& D)!=47.執行以下語句後a的值為( )。int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A)5 B)0 C)2 D)148.已知 x=43,ch='A',y=0;則表達式(x>=y&&ch<'B'&&!y)的值是( )。A)0 B)語法錯 C)1 D) "假"49.設x、y和s是int型變數,且x=3,y=4,z=5,則下面表達式中值為0的是( )。A)'x'&&'y'B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z50.以下不正確的if語句形式是( )。A) if(x>y&&x!=y)B)if(x==y)x+=y;C)if(x!=y) scanf("%d",&x) else scanf("%d",&y);D) if(x<y){x++;y++;}
4. 急求答案!!!!求高手幫忙做一下這套C語言的模擬題!!!!!!
錯
錯
對
錯
對
對
對
對亂前
對
對
對
對
錯
錯
錯
對
對
對
錯
錯
8 循環 是 x>=30 and x<嘩中清=80 and c!=50
24 .c 無限循環 3 5
以下題目重復
printf("\n"培核);
avg=(a[i]+avg)/n;
for(j=1;j<=i;j++)
j,i,i*j
5. 求c語言試題及答案!急啊!
c語言考試題(一)
一、 單項選擇題(每題2分,共20分)
1、以下選項中屬於C語言的數據類型是( )
A.復數型 B.邏輯型 C.集合型 D.雙精度型
2、一個C程序的執行是從( )
A.main()函數開始,直到main()函數結束 B.第一個函數開始,直到最後一個函數結束
C.第一個語句開始,直到最後一個語句結束 D.main()函數開始,直到最後一個函數結束
3、設有語句int a=3;則執行語句a+=a-=a*a;後,變數a的值是( )
A.3 B.0C.-12D.9
4、若有 char c[5]={'c','d','\0','e','\0'};則執行語句printf("%s",c);結果是( )。
A.cd\0e B.'c''d' C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;則下列表達式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替換不正確的敘述( ).
A.宏替換不佔用運行時間 B.宏名無類型
C.宏替換只是字元串替換 D.宏名必須用大寫字母表示
7、執行char str[10]=」Ch\nina」; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的輸出結果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定義int a[3][4][2];後,第10個元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的輸出結果是:( )
typedef struct
{long x[2];<br>short y[4];<br>char z[8];<br>}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空題(每空1分,共11分)
1、字元串"A"在內存中佔用的位元組數為 。
2、C語言中的標識符只能由字母、下劃線和 組成。
3、若有定義語句「 int a=25,b=14,c=19;",以下語句的執行結果是
if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定義a[]="B\172\\\'a%%";則執行語句printf("%d",strlen(a));的結果為 。
5、若有定義:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];則*(*(p+1)+2)的值為 ,*p[2]的值為 。若數組的首地址為2000,則p[1]指向的地址為 。
6、設a=2,b=3,x=3.5,y=2.5,則表達式(float)(a+b)/2+(int)x%(int)y 的結果是 。
7、設x、y都是int型變數,初值都為1,則執行表達式:--x&&y++後,y的值為 。
8、語句for(i=1;i==10;i++)continue;循環的次數是 。
9、以下程序輸出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"}; printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、 寫程序結果(每題5分,共35分)
1、#include
main()
{int x,y,z;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(「%d\n」,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(「first\n」);break;<br>case 1:printf(「second\n」);break;<br>}
case 2:printf(「third\n」);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf("%d",m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,&s[0],2,&s[1]};
main()
{ p=a; printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在當前盤目錄下有2個文本文件,其名稱和內容如下:
文件名: a1.txt a2.txt
內容: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;<br>void fc();<br>if((fp=fopen("a1.txt","r"))==NULL)<br>{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;<br>while((c=fgetc(fp1))!='#')putchar(c);<br>}
四、 程序填空(每空2分,共14分)
1、下面程序求矩陣a的主對角線元素之和,請填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
2、下列函數coy把字元數組S2中的全部字元復制到字元數組S1中, 復制時』\0』也要復制過去,』\0』後面的字元不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是將字元串a中的下標為奇數的元素由小到大排序,其他元素不變,請填空。
main()
{ char a[]="students",t; int i,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}
c語言考試題(二)
一. 填空題(每題2分,共20分)
1. C語言基本數據類型有:_______________________________;
構造類型有:_____________________________________。 P.13
2. C語言源程序注注釋符號是:________________________________,
為表明層次結構,C語言源程序通常採用_____________________格式編寫。P.4
3. 源程序TEST.C經編譯產生的目標文件是:________________________;
經連接處理後,產生的可執行文件是:__________________________。
4. strlen(「1234 \ 0xy)的值為:_____________________________;
sizeof(float)的值為:____________________________
5. 二維數組a[10] [50]最後一行的首地址為:_________________________;
最後一個元素的首地址為:____________________________________。
6. C標准庫函數中,數學函數的原型在:________________頭文件中,自定義頭文件D :\ MYC \ MY . H應如何包含到源程序文件中:_________________________。P.130
7. 已知函數定義為:int stat(inta,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。
8. 設int x,y,z=4;
x=y=++z;
x=(y>z)?x+2;x++;則x的值是:_________;
設int a=0,b=0,c=0;c=++a | | b++; ,則a、b、c值分別是:_____________。
9. 與if (x=0) 等價的寫法是if ( ! x );
判斷兩個(float)變數x,z是否相等一般:if ( fabc(x-z)<1e-6 )。
10.已知賦值語句zhang.year=1985;可判斷zhang是_______________類型的變數;
定義文件指針的C語句是:_________________________________。
二. 單項選擇題 (每題1分,共10分)
1. 組成C程序的基本單位是____________________________。
A.函數 B.標識符 C.表達式 D.語句
2. 設int類型的數據長度為2位元組,則該類型數據的取值范圍是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767
3. 在C語言中,邏輯值「真」是用_____________________表示的。
A.預定義為真值的宏 B.非零數
C.正數 D.非零整數
4. C語言對於嵌套if語句規定else總是與_____________________匹配。
A.與最外層的if B.與之前最近的if
C.與之前最近的不帶else的if D.與最近的{ }之前的if
5. 數組定義char a[10]={`a`,`b`,`c`}:包括了幾個元素____________________。
A.3 B.9 C.4 D.10
6. 數組名作為實參傳給被調用的函數時,形參獲得的是_____________________。
A.該數組第一個元素的值 B.該數組所有元素的值
C.該數組第一個元素的首地址 D.該數組所有元素的首地址
7. 為表示關系x ≥ y ≥z,正確的C語言表達式為_________________________。
A.(x>=>y>=z) B.(x>=y)AND(y>=z)
C.(x>=y)&&(y>=z) D.(x>y)&(y>=z)
8. 根據定義int a[ ]={1,2,3},i,*p=a; 從語法分析_________________是不正確的。
A. a[p-a] B.*(&a) C.p D.*(*(a+i))
9. 若有語句scanf(「%d%d」,&a,&b);要使變數a,b分別得到12和34;正確的輸入形式為____________________________。
A.12 34 B.12,34 C.1234 D.12:34
10.union uex {int i;float f;char c;}ex;則sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7
三. 分析程序,寫出運行結果。(每題4分,共20分)
1. 源程序如下,運行時假定鍵盤輸入字元串為``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字元型數字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*數字*/
}
printf(「value=%d|n」 ,n);
}
結果為: value=2004 。
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(「num=%d,score=%d」,num[iPos];score[iPos]);
結果為: num=311, score=93 。
3. 源程序如下,運行時假定鍵盤輸入數據為:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(「%d「,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(「%3d」,*p);
}
結果為: 1 3 5 7 9 。
4. 源程序如下,兩次運行,分別輸入數據13和21
#include
#include
void main(void)
{
int n,s;
scant (「%d」,&n);
s=panan( n);
if(s==1)printf(「yes\n」);
else printf(「no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
結果為 yes
no
5.源程序如下,運行時假定鍵盤輸入字元為:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str>=`a`&&str<=`z`) str-=32;
else if (str>=`A`&&str<=`Z`) str+=32;
puts(str);
}
結果為: aXbYcZ 。
四. 下列程序中每個劃線處有一個錯誤,改正劃線 中的錯誤,使其實現題目要求。(每體4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正為_________________________。
void sum (void) 改正為_________________________。
{
int s,i;
for (s=0,i=1;i<=100;i++)
{
s=s+ i ++; 改正為__________________________。
}
printf (「s=%f」,s) 改正為__________________________。
}
2. 源程序實現求x
#include
double pow(float . int) 改正為_________________________。
void main(void)
{
int i, n;
float x;
scanf (「%f,%d」,&x,&n);
for (i=1; i<9;i++)
printf(「%d,%e\n」, i, pow(i,x);
} 改正為______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正為______________________。
for (i=1; i< i++)>改正為_______________________。
p*=x;
retum(p);
}
3. 源程序實現排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i<9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正為_______________________。
if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(「%4d」, a):
}
4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; i++) 改正為____________________。
{
scanf(「%d」, p++);
sum+= *p; 改正為____________________。
}
avg = sum/ 10; 改正為___________________。
printf(「avg=%f」, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1項之和
#include
void main(void>
{
float exp , x , t;
int i, n;
scanf(「%f, %d」,&x, &n);
t=0; 改正為___________________。
exp=1.0;
for(i=1 ; i<=n; i++)
{
if(t<1e-6) loop; 改正為__________________。
t+=x/i; 改正為___________________。
exp*=t; 改正為___________________。
}
printf(「\n%15.6f」, exp);
}
五. 編程題 (每題6分,共30分)
1. 根據以下程序框架,編寫子函數,實現交換兩個整型變數x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(「%d, %d」, &x, &y);
swap( &x, &y);
printf(「%d, %d」, x, y);
}
void swap( )
{
}
2. 設某班人數36人,參加C語言考試,用一維數組score[36]存放考試成績,已給出一部分程序,完善以下程序,使其實現統計並輸出不及格人數及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i<36; i++)
{
scanf(「%f」, &score);
}
3. 完善以下程序使其實現由鍵盤任意輸入一串字元,統計其中大寫字母個數iA、小寫字母個數ia、其他字元個數iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;
}
4. 完善以下程序使其實現求方陣主和輔對角線元素之和及其轉置矩陣,設方陣用二維數組a表示,轉置矩陣用t表示,sl和s2表示主和輔對角線元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(「%d, %d,\n」,s1, s2);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf(「%3d」, t [j]);
}
5. 已知字元數組str[80],編寫返回指針的子函數,實現在其中查找字元ch首次出現的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(「%c」, &c);
p=lstrchar(str,c);
if(p==NULL) printf(「char %c not found\n」c);
else printf(「The position is %d」, p-str);
char 「lstrchar( )
{ }
歷年全國計算機二級考試c語言真題及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar
6. 5道c語言 基礎題目 求解
16.計算存放在數組score中12位學生成績的平均分,並輸出高於平均分的人數。
#include <stdio.h>
void main()
{
int score[N]={67,78,66,79,73,82,69,85,77,80,93,72};
int i;
float s = 0;
for(i = 0; i < N; i++)
{
s += score[i];
}
s = s/N;
int n = 0;
for(i = 0; i < N; i++)
{
if(score[i] > s)
n++;
}
printf("%d\n", n);
getch();
}
21. 編寫一main函數,實現以下功能:定義一個4*4的整型二維數組,
將自然數1至16按行順序存入該數組中,然後輸出該數組左上半三角。即在屏幕上輸出:
1 2 3 4
5 6 7
9 10
13
#include <stdio.h>
#define N 4
void main()
{
int array[N][N];
int i,j;
int n = 1;
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
{
array[i][j] = n;
n++;
}
}
for (i = 0; i < N; ++i)
{
for (j = 0; j < N - i; ++j)
{
printf("%d\t", array[i][j]);
}
printf("\n");
}
getch();
}
22. 輸入一個用24小時製表示的時間(h:m),把它轉換為用12小時製表示的時間並輸悶困散出。
例如: 輸入 9:05
輸出螞氏 9:05AM
輸入 12:10
輸出 12:10PM
輸入 14:30
輸出 2:30PM
#include <stdio.h>
void main()
{
int h,m;
scanf("%d:%d",&h,&m); //":" 是英文的
char str[10];
if (h >= 12) //中午12:00算下午
{
str = "PM";
if(h > 12)
h = h - 12;
}
else
str = "AM";
printf("%d:%d%s\n",h,m,str);
}
23. .輸入一個百分製成績,輸出相應的五級製成績。百分製成績與五級製成績之間的轉換標准為:
90分以上為A,80-89分為B,70-79分為C,60-69分為D,60以下為E。
例1:輸入 :95
輸出:A
例2:輸入:63
輸出:D
#include <stdio.h>
void main()
{
int n;
scanf("%d",&n);
switch(n/10)
{
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("E\n");
break;
}
}
24. 輸入一個年份和一個月份,輸出該年的這個月有多少天。(應考慮是否閏年:閏年條件為:該年份能被4整除,但不能被100整除,或是能被400整除。)
例1: 輸入1965-2
輸出 d=28
例2: 輸入1984-2
輸出尺顫d=29
#include <stdio.h>
void main()
{
int year;
int month;
scanf("%d%d",&year,&month);
int num = 0;
switch(month)
{
case 1:
num = 31;
break;
case 2:
{
if(year%400 == 0 || (year%4 == 0 && year%100 != 0))
num = 29;
else
num = 28;
}
break;
case 3:
num = 31;
break;
case 4:
num = 30;
break;
case 5:
num = 31;
break;
case 6:
num = 30;
break;
case 7:
num = 31;
break;
case 8:
num = 31;
break;
case 9:
num = 30;
break;
case 10:
num = 31;
break;
case 11:
num = 30;
break;
case 12:
num = 31;
break;
}
printf("%d\n", num);
}
7. 誰知道哪有關於C語言的練習題
C 程序設計試題庫C語言概述練習題
1.一個C程序的執行是從( )
A.本程序的main函數開始,到main函數結束
B.本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
C.本程序的main函數開始,到本程序文件的最後一個函數結束
D.本程序文件的第一個函數開始,到本程序main函數結束
2.以下敘述正確的是:( )
A.在C程序中,main函數必須位於程序的最前面
B.程序的每行中只能寫一條語句
C.C語言本身沒有輸入輸出語句
D.在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤
3.以下敘述不正確的是:( )
A.一個C源程序可由一個或多個函數組成
B.一個C源程序必須包含一個main函數
C.C程序的基本組成單位是函數
D.在C程序中,注釋說明只能位於一條語句的後面
4.C語言規定:在一個源程序中,main的位置( )
A.必須在最開始
B.必須在系統調用的庫函數後面
C.可以任意
D.必須在最後
5.一個C語言程序是由( )
A.一個主程序和若乾子程序組成
B.函數組成
C.若干過程組成
D.若乾子程序組成
6.C源程序的基本單位是____________
7.一個C源程序中至少包括一個____________
8.在一個C源程序中,注釋部分兩側的分界符分別為____________ 和____________
9.在C語言中,輸入操作是由庫函數____________ 完成的,輸出操作是由庫函數____________ 完成的
c語言模擬練習題
一、 判斷題(2×8=16分)
1、Printf()函數總是從新行的起始位置開始列印。 ( )
2、所有的變數在使用前都必須予以申明。( )
3、在申明變數時必須給出變數的類型。( )
4、C語言認為變數number和NuMbEr是相同的。( )
5、列印三行輸出的C語言程序必須用三條printf語句。( )
6、求余運算符%只能用於兩個整數操作數。( )
7、switch選擇結構中必須有default子句。( )
8、如果x>y或a<b為真,那麼表達式(x>y&&a<b)為真。( )
二、 選擇題(3×16=48分)
1、下面實現換行功能的格式符為 。( )
A. \t B. \n C. \a D. \k
2. C語言程序由什麼組成?(單選)
A. 子程序 B. 主程序和子程序 C. 函數 D. 過程
3. 下面哪個表達式的值為4.
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
4. 該源程序執行後,屏幕上顯示什麼?
void main()
{
int a;
float b;
a=4;
b=9.5;
printf("a=%d,b=%4.2f\n",a,b);
}
A. a=%d,b=%f\n B. a=%d,b=%f
C. a=4,b=9.50 D. a=4,b=9.5
5. 若有以下說明語句:
char s='\\\092';
則下面哪一項是正確的.
A. 使s的值包含2個字元 B. 說明語句不合法
C. 使s的值包含6個字元 D. 使s的值包含4個字元
6.若k,g均為int型變數,則以下語句的輸出為哪一項?
int k,g;
k=017;
g=111;
printf("%d,",k);
printf("%x\n",g);
A. 15,6f B. f,6f C. f,111 D. 15,111
7. 在C語言的if語句中,用作判斷的表達式為___。
A. 關系表達式 B. 邏輯表達式
C. 算術表達式 D. 任意表達式
8. 請問:下面這個程序段的輸出是什麼?
int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A. a=7 b=8 c=7 B. a=7 b=9 c=7
C. a=8 b=9 c=7 D. a=8 b=9 c=8
9. 下面這個程序的輸出是什麼?
#include <stdio.h>
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
A. y=0 B. while構成死循環 C. y=1 D. y=-1
10. 若有以下說明和語句,則輸出結果是___。
char str[]="\"c:\\abc.dat\"";
printf("%s",str);
A. 字元串中有非法字元 B. \"c:\\abc.dat\"
C. "c:\abc.dat" D. "c:\\abc.dat"
11. 如果要把常量327存入變數a中,a不能定義成哪些類型?
A. int B. char C. long D. float
12. C語言中,預處理總是以 符號開頭。 ( )
A. ¥ B.# C. @ D. ◇
13. C語言中,double類型的數據占 個位元組的空間。( )
A. 1 B.2 C. 4 D. 8
14. 下面語句執行完後,b的值為 。 ( )
int a=b=10;
b=10+(a++);
A. 10 B.19 C. 20 D. 21
15. 這段程序中的常量有: (多選) ( )
#define PI 3.14
void main()
{
int sum;
sum = 10 + 15;
printf("sum=%d\n",sum);
printf("result is 25\n");
}
這段程序中常量有:
A. 10 B. sum C. 15
D. 25 E. main F. PI
16. 指出下面錯誤的表達式:(多選) ( )
A. a+b=5 B. 56=a11 C. i=i++
D. 5.6+6.2%3.1 E. 12 F. a=5,b=6,c=7
三、 填空題(3×8=24分)
1、C語言程序都是從 函數開始執行。
2、函數體用 開始,用 結束。
3、C語言的語句都以 結束。
4、執行循環結構中的 語句能夠立即執行下一次循環。
5、執行循環結構或switch結構中的 語句能夠立即退出該結構。
6、輸出字元串的格式化符為 。
7、C語言中數組名表示數組的 。
8. C語言程序設計試題
1. 一條簡單語句是以_____;___字元作為結束符的,一條復合語句是分別以___{_____字元和_____}___字元作為開始符和結束符的。
2. 任何一個C++程序至少且只能包含一個_____主___函數,且程序總是從這個函數開始執行,不論這個函數的位置如何。一個函數定義由 函數頭 和 函數體 兩部分組成。
3. C++頭文件和源程序文件的擴展名分別為 .h 和 .cpp。
4. cout與操作符__<<_配合使用才能顯示輸出,cin與操作符_>>_配合使用才能實現輸入。
5. 數據類型int,char,bool,float,double, int * 等的類型長度分別為___4_、1_、_1_、_4、_8___和_____4___。
6. 數值常量46、0173和0x62對應的十進制值分別為_____46___、____123____和______98__。
7. 字元串」It\』s\40a\40C++programe!」中包含有______19____個字元。
8. 若x=5,y=10,則計算y*=++x表達式後,x和y的值分別為____6____和____60____。
9. 若x=25,則計算y=x--表達式後,x和y的值分別為____24____和__25______。
10. 假定x和ch分別為int型和char型,則sizeof(x)和sizeof(ch)的值分別為___4_____和_____1___。
11. 假定x=64,y=88,則x<<2和y>>2的值分別為____128____和___44_____。
12. 假定x是一個邏輯量,則x&&true的值與_____x___的值相同,x||false的值也與_____x___的值相同。
13. 假定x是一個邏輯量,則x&&!x和x||!x的值分別為____0____和____1____。
14. 假定x=10,則表達式x<=10?20:30的值為____20____。
15. 表達式sqrt(81)和pow(6,3)的值分別為________9______和_________216_____。
16. 數學算式(1+x)sin48°和axbex+1對應的算術表達式分別為___(1+x)*sin(48*3.14159/180)_____和_____a*pow(x,b)*exp(x+1)___。
17. 邏輯表達式:a>=x||b>2*y+10的相反式為:___~(a<=x&&2*y+10)_____。
18. 在嵌套的if語句中,每個else關鍵字與它前面最接近的____if____關鍵字相配套。
19. 在for語句中,假定循環體被執行次數為n,則<表達式1>共被計算____n___次,<表達式2>共被計算____n____次,<表達式3>共被計算____n____次。
20. 執行for和while循環時,每次是先進行____條件____的判斷,然後再執行____循環___,執行do循環時則相反。
另外,站長團上有產品團購,便宜有保證
9. C語言試題
自考「C語言程序設計」模擬試題一
2008-1-3
相關自考頻道點評提問自考網上培訓
自考「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個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。
參考答案
一、填空題
(1)整型、實型、字元型。
(2)int,2,-32768~ +32767
(3)1111111111011101
(4)- 112
(5)14,『m』
(6)「a」是字元串常量,而『a』是字元常量。
(7)存放地址值的變數或常量,或者答地址。
(8)取運算對象的地址。 取指針變數所指的內容。a=1,b=3,c=2
二、選擇題
1、C 2、C 3、D 4、B 5、D
6、A 7、C 8、C 9、D 10、A
11、C 12、C 13、D 14、C 15、B
16、C 17、D 18、D 19、C 20、B
三、閱讀程序題
(1) 3.141593,3.1416,3.142
(2) 6,8
(3) 4
(4) 22
(5) 19
四、程序填空題
1、scanf(「%f」,&f); sum+=f;
2、fopen(「myfile」,w) fclose(fp);
3、x>=0.0 x<=amin
五、編程題
1、main()
{int a,b,c;
printf(「請輸入三個整數:」);
scanf(「%d,%d,%d」,&a,&b,&c);
if(a
if(b
else printf(「max=%d\n」,b);
else if(a
else printf(「max=%d\n」,a);}
2、#include「stdio.h」
main()
{int I,n;
for(n=0,I=1900;I<=2000;I++)
{if(I%4==0&&I0!=0||I@0==0)
{printf(「%d 」,I);n++;}
if(n%3==0)
printf(「\n」);} } }
3、#include「stdio.h」
int fun(int a)
{int I;
if(a==2) return 1; I=2;
while((a%I)!=0&&I<=sqrt((float)a))
I++;
if(a%I==0)
{printf(「%d is not a prime!」,a);
return 0;}
printf(「%d is a prime!」,a);
return 1; }
main()
{int x;
printf(「\n please enter a number:」);
scanf(「%d」,&x);
printf(「%d\n」,fun(x)); }
4、#include「stdio.h」
#define N 3
struct student
{long stu_num; char sex;
char name[15]; int score[4];
float average; };
main()
{int I,j,index; float sum,max;
struct student stuarr[N];
for(I=0;I
{printf(「please input %d student information:\n」,I+1);
scanf(「%ld,%c,%s」,&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
for(j=0;j<4;j++)
scanf(「%d」,&stuarr[I].score[j]); }
for(I=0;I
{sum=0.0;
for(j=0;j<4;j++)
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0;}
max=stuarr[0].average;
index=0;
for(I=1;I
if(stuarr[I].average>max)
{max=stuarr[I].average;
index=I; }
printf(「總平均成績最高的學生信息是學號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\n」,stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
}
10. 求c語言典型題目 可追加分!!!
C語言趣味程序百例精解 網路一下前面的內容,是PDF的自己看看吧,超有用的。我只能說,原作者很好很強大!