『壹』 自考「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語言程序設計視頻教程下載地址
11《程序設計》考點專題講解
鏈接:

若資源有問題歡迎追問~
