㈠ 誰有大一c語言考試題快考試了,跪求題庫··
單項選擇題(每小題2分,共50分)
1、一個C程序的執行是從___A__。
A、本程序的main函數開始,到main函數結束
B、本程序的main函數開始,到本程序文件的最後一個函數結束
C、本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
D、本程序文件的第一個函數開始,到本程序main函數結束
2、C語言程序的基本單位是___C___。
A、程序行 B、語句
C、函數 D、字元
3、請選出可用作C語言用戶標識符的一組標識符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
以上內容參考:網路-c語言
㈡ c語言編程題
《C語言程序設計試題匯編》由三部分組成:第一部分為試題集,每章都提供了大量試題,並給出了每道試題的答案及解析;第二部分為全國計算機等級考試指導,包括大綱規定的考試內容、重要知識點與分值預測,筆試應試指導與復習策略,2007年9月、2008年4月、2008年9月三套筆試真題試卷解析與筆試應試技巧,上機考試應試方法與技巧,上機題主要演算法及實例,上機考試流程和操作方法;第三部分為綜合模擬訓練,提供了五套筆試模擬試卷以及答案與解析。
《C語言程序設計試題匯編》適合作為大專院校中各專業層次的學生學習C語言程序設計的輔導教材。通過對《C語言程序設計試題匯編》的學習,讀者能夠進一步復習、鞏固和掌握C語言程序設計的知識,並適應和滿足最新的等級考試要求,幫助廣大考生順利通過全國計算機等級二級C語言程序設計考試。
圖書目錄
第一部分 試題集
第1章 C語言概述
第2章 數據類型、運算符與表達式
第3章 最簡單的C程序設計
第4章 邏輯運算和判斷選擇控制
第5章 循環結構
第6章 數組
第7章 函數
第8章 編譯預處理
第9章 指針
第10章 結構體與共用體
第11章 位運算
第二部分 全國計算機等級考試指導
第三部分 綜合模擬訓練
㈢ 求C語言的筆試題和編程題!!~~~謝謝~~!!
一份曾經的考卷+答案~~//後面的編程題是以前做過的實驗~~
《程序設計基礎-C》試卷
一、單項選擇題
1. C 語言程序中可以對程序進行注釋,注釋部分必須用符號_____括起來。
A、『{『 和』}』 B、『[『和』]』 C、「/*」和」*/」 D、「*/」和」/*」
2. 下列運算符中,優先順序最低的是_____。
A、* B、!= C、+ D、=
3. 若變數已正確定義,表達式 (j=3, j++) 的值是_____ 。
A、3 B、 4 C、5 D、0
4. 已知字元 『a』 的ASCII碼為 97 ,執行下列語句的輸出是_____。
printf ("%d, %c", 』b』, 』b』+1 ) ;
A、98, b B、語句不合法 C、98, 99 D、 98, c
5. 表達式strcmp(「box」, 「boss」) 的值是一個_______。
A、 正數 B、 負數 C、 0 D、 不確定的數
6. 數組定義為 int a[3][2]={1, 2, 3, 4, 5, 6},數組元素_____的值為6。
A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3]
7. 要調用數學函數時,在#include命令行中應包含_____。
A、 」stdio.h」 B、 」string.h」 C、 」math.h」 D、 」ctype.h」
8. 判斷i和j至少有一個值為非0的表達式是_____。
A、 i!=0 && j!=0 B、i*j!=0 C、!(i==0 || j==0) D、i&&j
9. 若a是基本整型變數,c是單精度實型變數,輸入語句______是錯誤的。
A、scanf(」%d,%f」, &a, &c); B、scanf(」d=%d, c=%f」, &a, &c);
C、scanf(」%d%f」, &a, &c); D、scanf(」%d%f」, a, c);
10. 若變數已正確定義並且指針p已經指向某個變數x,則(*p)++相當於_____。
A、p++ B、x++ C、*(p++) D、&x++
11. 若p1、p2都是整型指針,p1已經指向變數x,要使p2也指向x, _____是正確的。
A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1;
12. 下列程序段的輸出是_____。
int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);
A、 3 B、 5 C、 4 D、6
13. 不正確的賦值或賦初值的方式是______。
A、char str[]="string";
B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};
C、char str[10];str="string";
D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', 』\0』};
14. 對於以下結構定義,++p->str中的++加在_____。
struct {
int len;
char *str;
} *p;
A、指針str上 B、指針p上 C、str指的內容上 D、以上均不是
15. 對於如下說明,語法和語義都正確的賦值是_____。
int c, *s, a[]={1, 3, 5};
A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;
二、填空題
1. 寫出下列程序段的輸出結果。
float x1, x2;
x1=3/2;
x2=x1/2;
printf("%d, %.1f", (int)x1, x2) ;
2. 表達式 (7<<1>>2^2 ) 的值是_______。
3. 寫出下列程序段的輸出結果。
#define A 10
#define B (A<A+2)-2
printf("%d", B*2);
4. 寫出判斷字元變數c是英文字母的表達式 。
5. 寫出下列程序段的輸出結果。
int k, x;
for (k=0, x=0; k<=9&&x!=10; k++)
x+=2;
printf ("%d, %d", k, x) ;
6. 寫出下列程序段的輸出結果。
printf(「%d, %d」, NULL, EOF);
7. 對於以下遞歸函數f,調用 f (3) 的返回值是_____。
f (int n)
{ return ((n>0) ? 2*f(n-1)+f(n-2) : -1); }
8. 寫出下列程序段的輸出結果。
char str[]="hello\tworld\n";
printf("%d, %c\n", sizeof(str), *(str+10));
9. 輸入12345#後,寫出下列程序的輸出結果。
void main()
{ char c;
for(c=getchar(); getchar()!=』#』; c=getchar())
putchar(c);
}
10. 執行程序find –nx ould text.txt時,*++argv[1]的值是_______。
三、程序閱讀題
1. 若輸入 3 1 2 3 <回車> , 則以下程序的輸出結果是_______。
#include "stdio.h"
void main()
{ int i, j, n, a[10];
scanf("%d", &n);
for (i=0; i<n; i++)
scanf("%d",&a[i]);
for (i=0; i<n; i++)
for (j=0; j<n; j++)
printf("%d, ", a[(i+j)%n]);
}
2. 若輸入89 76 24 25 9 8 11 16 35 4 <回車> , 則以下程序的輸出結果是_______。
#include "stdio.h"
#define N 10
main()
{
int x[N], y1[N], y2[N];
int i, j, n1, n2, t, p;
n1=n2=0;
for(i=0;i<N;i++){
scanf(「%d」, &x[i]);
if(x[i] % 2==0) y1[n1++]=x[i];
else y2[n2++]=x[i];
}
for(i=1; i<n1; i++)
for(j=0; j<n1-1; j++)
if(y1[j]>y1[j+1]){
t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;
}
for(i=0; i<n2-1; i++){
p=i;
for(j=i+1; j<n2; j++)
if(y2[p]<y2[j]) p=j;
if(p!=i){
t=y2[i]; y2[i]=y2[p]; y2[p]=t;
}
}
for(i=0; i<n1; i++) printf("%d, ", y1[i]);
for(i=0; i<n2; i++) printf("%d, ", y2[i]);
}
3. 以下程序的輸出結果是_______。
#include <stdio.h>
int z;
void p(int *x, int y)
{ ++*x;
y--;
z=*x+y+z;
printf("%d, %d, %d#", *x, y, z);
}
void main()
{ int x=1, y=5, z=9;
p(&x, y);
printf("%d, %d, %d#", x, y, z);
}
4. 若輸入 -6+15*3/5=<回車> , 則以下程序的輸出結果是_______。
#include <stdio.h>
void main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c=getchar();
if(c<='9'&&c>='0') m=10*m+c - '0';
else {
if(oldc=='+') sum += m;
else sum -= m;
m=0;
oldc=c;
printf("%d, ", sum);
}
} while(c!='=');
}
四、程序填空題
下列程序的功能是創建單向鏈表。
#include <stdio.h>
#include <alloc.h>
struct link {
char name[10];
int mark;
struct link * next;
};
void insert(char *, int);
struct link * head = NULL;
main()
{
char name[10];
int mark;
struct link * t;
while ( 1 ) {
scanf("%s %d", name, &mark);
if ( strcmp(name, "#") == 0 ) break;
______(1)_______;
}
for (t=head; ______(2)_______)
printf("<%s>: %d\n", t->name, t->mark);
}
void insert(char * name, int mark)
{
struct link * p;
p = ______(3)_______ ;
strcpy(p->name, name);
p->mark = mark;
______(4)_______;
if ( head != NULL ) ______(5)_______;
head = p;
}
答案
2000~2001學年《程序設計基礎C》參考答案
一、單項選擇題
C D A D A B C B D B A B C A C
二、填空題
1 1, 0.5
2 1
3 -3
4 c>=』a』&&c<=』z』|| c>=』A』&&c<=』Z』
5 5, 10
6 0, -1
7 -17
8 13, d
9 13
10 『n』
三、程序閱讀題
1 1, 2, 3, 2, 3, 1, 3, 1, 2,
2 4, 8, 16, 24, 76, 89, 35, 25, 11, 9,
3 2, 4, 6#2, 5, 9#
4 0, -6, 9, 6, 1,
四、程序填空題
(1) insert(name, mark)
(2) t!=NULL; t=t->next
(3) (struct link *)malloc(sizeof(struct link))
(4) p->next = NULL
(5) p->next = head
編程
程序填空,不要改變與輸入輸出有關的語句。
輸入一個正整數repeat (0<repeat<10),做repeat次下列運算:
給定平面任意兩點坐標 (x1, y1) 和 (x2, y2),求這兩點之間的距離(保留2位小數)。
要求定義和調用函數 dist(x1, y1, x2, y2)計算兩點間的距離,函數形參x1、y1、x2和y2的類型都是double,函數類型是double。
輸入輸出示例:括弧內是說明
輸入
1 (repeat=1)
10 10 (x1=10, y1=10)
200 100 (x2=200, y2=100)
輸出
Distance = 210.24
#include <stdio.h>
#include <math.h>
double dist(double x1, double y1, double x2, double y2);
int main(void)
{
int repeat, ri;
double distance, x1, y1, x2, y2;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
/*---------*/
printf("Distance = %.2f\n", distance);
}
}
/*---------*/
程序填空。
求1~100中能被6整除的所有整數的和
#include <stdio.h>
int main(void)
{
int i, sum = 0;
/*---------*/
printf("%d", sum);
}
程序填空,不要改變與輸入輸出有關的語句。
輸入一個正整數repeat (0<repeat<10),做repeat次下列運算:
讀入1 個實數x和正整數 n(n<=50),計算並輸出 x 的 n 次冪(保留2位小數),不允許調用pow函數求冪。
輸入輸出示例:括弧內是說明
輸入
2 (repeat=2)
1.5 2 (x=1.5,n=2)
2 7 (x=2,n=7)
輸出
2.25
128.00
#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double mypow, x;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &x, &n);
/*---------*/
printf("%.2f\n", mypow);
}
}
……編程題還有好多~~需要的話可以發給你~
㈣ C語言程序設計考試題
main函數
scanf函數,printf函數
-60
6 ,4, 2
&&, || , !
B 66
2 1
6
main
5
㈤ c語言考試題
1、一個C語言程序的語句至少應包含一個___main函數___。
2、C語言源程序文件的擴展名是__ .C ____,經過編譯、連接後,生成文件的擴展名是__ .h ____。
3、結構化程序由順序結構、___選擇___和___循環___三種基本結構組成。
4、C語言的執行是從____main函數__開始執行的。
5、C源程序的語句分隔符是___分號___。
6、在C語言中,用關鍵字_____float_定義單精度實型變數。
7、表達式S=12應當讀做「___把12賦值給S___」。
8、C語言源程序的基本單位是___函數___。
9、設int x=9,y=8;表達式x-=y+1的結果是___0___。
10、若a為整型變數,a=12,則表達式:a * =2+3的值___60__。
11、調用C語言對輸入輸出處理的庫函數時,在# include命令行中應包含的頭文件是___stdio.h___。
12、表達式9%5的結果是__4____。
13、若a為整型變數,a=12,則表達式:a+=4的值_16_____。
14、 在C語言中,要求運算數必須是整型的運算符是__%____。
15、在C語言中,用____非零整數__表示邏輯「真」值。
16、表達式10/3的結果是__3____。
17、通常一個位元組包含__8____個二進制位。
18、 假設所有變數均為整型,a=2,b=5,b++則表達式a+b的值是_8_____。
19、在C語言中,最基本的數據類型只有四種,它們分別是:_int_____、___float___、__char____和double。
20、一個C程序有且僅有一個____main__函數。
21、若a為整型變數,a=12,則表達式:a-=2的值_10____。
22、在C語言中,有三種邏輯運算符,它們分別是:__與____、___或___、__非____。
23、在C語言中,字元輸入函數和字元輸出函數分別是:__getchar____和___putchar___。
24、C程序開發的四個步驟是___輸入與編輯源程序___、__編譯____、__連接____和執行。
25、C程序的結構分別是:順序結構、__選擇結構____、__循環結構____。
26、if語句中的表達式可以是關系表達式、__算術表達式____、__賦值表達式____。
27、__x>y_?x:y___是C語言中惟一一個三元運算符。
28、C語言提供的預處理命令主要包括如下三種:宏定義、__文件包含____、___條件編譯___。
二、閱讀程序,寫出下列程序運行結果。
1、2
2、K
3、a 97
4、無結果
三、編寫程序
1、編寫一個C程序,輸入a、b、c 3個數,輸出其中最大的數。
#include
Void main()
{
Int a,b,c;
Printf("請輸入三個數");
Scanf(%d%d%d,&a,&b,&c);
If(a<b)
A=b;
If(a<c)
A=c;
Printf("最大的數:%d",a);
}
求1—50的之和。
#include
Void mian()
{
Int sum=0,i;
For(i=1;i<=50;i++)
Sum+=i;
Printf("1-50之和為:%d",sum);
}
從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。
#include
Void mian()
{
Char c;
Printf("請輸入一個字母");
Scanf("%c".&c);
Printf("它的小寫字母為%c",c+32);
}
利用while語句,計算1+1/2+1/4+…+1/100的值,並顯示出來。
#include
Void mian()
{
Float sum=0,temp;
Int i =1;
While(i<=100)
{
Temp=1/i;
Sum+=temp;
I++
}
Printf("結果為%d",sum);
}
輸入兩個整數,輸出其中的大數。
#include
Void mian()
{
Int a,b;
Printf("請輸入兩個數");
Scanf("%d%d".&a,&b);
Printf("大數是:%d"a>b?a:b);
}
6、利用while語句,計算1+1/3+1/5+…+1/99的值,並顯示出來。
#include
Void mian()
{
Int i =1;
Float sum=0,temp=0;
While(i<=99)
{
Temp =1/i;
Sum+=temp;
I=i+2;
}
Printf("結果為: %f",sum),
}
㈥ c語言二級考試題及答案
2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計
(考試時間90分鍾,滿分100分)
一、 選擇題(1-10,21-40每題2分,11-20每題1分,共70分)
(1)下列關於棧敘述正確的是
A)棧頂元素最先能被刪除
B)棧頂元素最後才能被刪除
C)棧底元素永遠不能被刪除
D)以上三種說法都不對
(2)下列敘述中正確的是
A)有一個以上根結點的數據結構不一定是非線性結構
B)只有一個根結點的數據結構不一定是線性結構
C)循環鏈表是非線性結構
D)雙向鏈表是非線性結構
(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)
A)3 B)4 C)6 D)7
(4)在軟體開發中,需求分析階段產生的主要文檔是
A)軟體集成測試計劃 B)軟體詳細設計說明書
C)用戶手冊 D)軟體需求規格說明書
(5)結構化程序所要求的基本結構不包括
A)順序結構 B)GOTO跳轉
C)選擇(分支)結構 D)重復(循環)結構
(6)下面描述中錯誤的是
A)系統總體結構圖支持軟體系統的詳細設計
B)軟體設計是將軟體需求轉換為軟體表示的過程
C)數據結構與資料庫設計是軟體設計的任務之一
D)PAD圖是軟體詳細設計的表示工具
(7)負責資料庫中查詢操作的資料庫語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言
(8)一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯系是
A)1:1聯系 B)1:m聯系
C)m:1聯系 D)m:n聯系
(9)有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是
A)自然連接 B)交 C)除 D)並
(10)定義無符號整數類為UInt,下面可以作為類UInt實例化值的是
A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}
(11)計算機高級語言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是
A)C語言程序僅可以編譯執行
B)C語言程序僅可以解釋執行
C)C語言程序既可以編譯執行又可以解釋執行
D)以上說法都不對
(12)以下敘述中錯誤的是
A)C語言的可執行程序是由一系列機器指令構成的
B)用C語言編寫的源程序不能直接在計算機上運行
C)通過編譯得到的二進制目標程序需要連接才可以運行
D)在沒有安裝C語言集成開發環境的機器上不能運行C源程序生成的.exe文件
(13)以下選項中不能用作C程序合法常量的是
A)1,234 B)'123'
C)123 D)"\x7G"
(14)以下選項中可用作C程序合法實數的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E
(15)若有定義語句:inta=3,b=2,c=1;,以下選項中錯誤的賦值表達式是
A)a=(b=4)=3; B)a=b=c+1;
C)a=(b=4)+c; D)a=1+(b=c=4);
(16)有以下程序段
char name[20];
int num;
scanf("name=%s num=%d",name;&num);
當執行上述程序段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為
A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001
(17)if語句的基本形式是:if(表達式)語句,以下關於「表達式」值的敘述中正確的是
A)必須是邏輯值 B)必須是整數值
C)必須是正數 D)可以是任意合法的數值
(18)有以下程序
#include
main()
{ int x=011;
printf("%d\n",++x);
}
程序運行後的輸出結果是
A)12 B)11 C)10 D)9
(19)有以下程序
#include
main()
{ int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case1:printf("%d",s+5);
case2:printf("%d",s+4); break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是
A)6566456 B)66656 C)66666 D)6666656
(20)有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch (n)
{ case 1:
case 3:printf("%d\n",n); break;
case 2:
case 4:printf("%d\n",n); continue;
case 0:exit(0);
}
printf("%d\n",n);
}
以下關於程序段執行情況的敘述,正確的是
A)for循環語句固定執行8次 B)當產生的隨機數n為4時結束循環操作
C)當產生的隨機數n為1和2時不做任何操作D)當產生的隨機數n為0時結束程序運行
(21)有以下程序
#include
main()
{ char s[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是
A)0 B)3 C)7 D)8
(22)若i和k都是int類型變數,有以下for語句
for(i=0,k=-1;k=1;k++) printf("*****\n");
下面關於語句執行情況的敘述中正確的是
A)循環體執行兩次B)循環體執行一次C)循環體一次也不執行D)構成無限循環
(23)有以下程序
#include
main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf("\n");
}
程序運行後的輸出結果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
(24)設有定義:doublex[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是
A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6); D)scanf("%lf",p[6]);
(25)有以下程序(說明:字母A的ASCII碼值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序運行後的輸出結果是
A) BY B) BT C) YT D) YE
(26)有以下程序段
#include
main()
{ …
while( getchar()!='\n');
…
}
以下敘述中正確的是
A)此while語句將無限循環
B) getchar()不可以出現在while語句的條件表達式中
C)當執行此while語句時,只有按回車鍵程序才能繼續執行
D)當執行此while語句時,按任意鍵程序就能繼續執行
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序運行後的輸出結果是
A)3 B)2 C)1 D) 0
(28)若有定義語句:chars[3][10],(*k)[3],*p;,則以下賦值語句正確的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;
(29)有以下程序
#include
void fun(char *c)
{ while(*c)
{ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
當執行程序時從鍵盤上輸入Hello Beijing<回車>,則程序的輸出結果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
(30)以下函數的功能是:通過鍵盤輸入數據,為數組中的所有元素賦值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i<>
}
在程序中下劃線處應填入的是
A)x+i B)&x[i+1]C)x+(i++) D)&x[++i]
(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n %s\n",a,b);
}
程序運行時若輸入:
how are you? I am fine<回車>
則輸出結果是
A)how are you? B)how I am fine are you? I am fine
C)how are you? I am fine D)row are you?
(32)設有如下函數定義
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若執行調用語句:n=fun(3);,則函數fun總共被調用的次數是
A)2 B)3 C)4 D)5
(33)有以下程序
#include
int fun (int x,int y)
{ if (x!=y) return ((x+y);2);
else return (x);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序運行後的輸出結果是 A)3 B)6 C)8 D)12
(34)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d\n",s);
}
程序運行後的輸出結果是 A)0 B)10 C)30 D)64
(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf("%d\n",S(k+j));
}
程序運行後的輸出結果是 A)197 B)143 C)33 D)28
(36)設有定義:struct {charmark[12];int num1;double num2;} t1,t2;,若變數均已正確賦初值,則以下語句中錯誤的是
A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序
#include
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{
struct ord *p=dt;
printf("%d,",++(p->x));printf("%d\n",++(p->y));
}
程序運行後的輸出結果是 A)1,2 B)4,1 C)3,4 D)2,3
(38)有以下程序
#include
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序運行後的輸出結果是 A)10 B)11 C)20 D)21
(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a>>3;
printf("%d\n",c);
}
程序運行後的輸出結果是 A)32 B)16 C)1 D)0
(40)設fp已定義,執行語句fp=fopen("file","w");後,以下針對文本文件file操作敘述的選項中正確的是
A)寫操作結束後可以從頭開始讀 B)只能寫不能讀
C)可以在原有內容後追加寫 D)可以隨意讀和寫
二、填空題
(1)有序線性表能進行二分查找的前提是該線性表必須是 【1】 存儲的。
(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則後序遍歷結果為 【2】 。
(3)對軟體設計的最小單位(模塊或程序單元)進行的測試通常稱為【3】 測試
。
(4)實體完整性約束要求關系資料庫中元組的 【4】 屬性值不能為空。
(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱 【5】 是關系A的外碼。
(6)以下程序運行後的輸出結果是 【6】。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
(7)有以下程序
#include
main()
{ int x;
scanf("%d",&x);
if(x>15) printf("%d",x-5);
if(x>10) printf("%d",x);
if(x>5) printf("%d\n",x+5);
}
若程序運行時從鍵盤輸入12<回車>,則輸出結果為 【7】 。
(8)有以下程序(說明:字元0的ASCII碼值為48)
#include
main()
{ char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序運行時從鍵盤輸入48<回車>,則輸出結果為 【8】 。
(9)有以下函數
void prt(char ch,int n)
{ int i;
for(i=1;i<=n;i++)
printf(i%6!=0?"%c":"%c\n",ch);
}
執行調用語句prt('*',24);後,函數共輸出了 【9】 行*號。
(10)以下程序運行後的輸出結果是 【10】。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d %d\n",x,y);
}
(11)己知a所指的數組中有N個元素。函數fun的功能是,將下標k(k>0)開始的後續元素全部向前移動一個位置。請填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}
(12)有以下程序,請在 【12】 處填寫正確語句,使程序可正常編譯運行。
#include
【12】 ;
main()
{ double x,y,(*p)();
scanf("%lf%lf",&x,&y);
p=avg;
printf("%f\n",(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}
(13)以下程序運行後的輸出結果是 【13】。
#include
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf("%d",n[i]); }
printf("\n");
}
(14)以下程序運行後的輸出結果是 【14】。
#include
#include
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,"welcome");
for(i=6;i>=0;i--) putchar(*(p+i));
printf("\n-"); free(p);
}
(15)以下程序運行後的輸出結果是 【15】。
#include
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf("%d",x[i]);
printf("\n");
fclose(fp);
}
2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計答案
一.選擇題1-5 ABDDB
6-10 ACDCB 11-15 ADBAA
16-20 ADCAD 21-25 BDBCD
26-30 CDCCC 31-35 BBBDB
36-40 CDDCB
二,填空題
1) 順序 2) DEBFCA 3) 單元測試 4) 主鍵 5) D 6) 3 7) 1217
8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715
14) e(E)moclew 15) 123456
2010年9月全國計算機等級考試二級C筆試試卷答案
一、選擇題
1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB
21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD
二、填空
1.1DCBA2345 2.n-1 3.25 4.結構化 5.物理設計 6.2008
7.15 8.非0 9. 1 4 13 40 10.i 11.2
12.a[row][col] 13.3 14.*s 15.FILE
㈦ 求C語言基礎知識試題~急!!!
◆ 基本要求
1.熟悉 Visual C++ 6.0 集成開發環境。
2.掌握結構化程序設計的方法,具有良好的程序設計風格。
3.掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。
4.在 Visual C++ 6.0 集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力
◆ 考試內容
一、C語言程序的結構
1.程序的構成,main函數和其他函數。
2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。
3.源程序的書寫格式。
4.C語言的風格。
二、數據類型及其運算
1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。
2.C運算符的種類、運算優先順序和結合性。
3.不同類型數據間的轉換與運算。
4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。
三、基本語句
1.表達式語句,空語句,復合語句。
2.輸入輸出函數的調用,正確輸入數據並正確設計輸出格式。
四、選擇結構程序設計
1.用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的嵌套。
五、循環結構程序設計
1.for循環結構。
2.while和do-while循環結構。
3.continue語句和break語句。
4.循環的嵌套。
六、數組的定義和引用
1.一維數組和二維數組的定義、初始化和數組元素的引用。
2.字元串與字元數組。
七、函數
1.庫函數的正確調用。
2.函數的定義方法。
3.函數的類型和返回值。
4.形式參數與實在參數,參數值傳遞。
5.函數的正確調用,嵌套調用,遞歸調用。
6.局部變數和全局變數。
7.變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。
八、編譯預處理
1.宏定義和調用(不帶參數的宏,帶參數的宏)。
2.「文件包含」處理。
九、指針
1.地址與指針變數的概念,地址運算符與間址運算符。
2.一維、二維數組和字元串的地址以及指向變數、數組、字元串、函數、結構體的指針變數的定義。通過指針引用以上各類型數據。
3.用指針作函數參數。
4.返回地址值的函數。
5.指針數組,指向指針的指針。
十、結構體(即「結構」)與共同體(即「聯合」)
1.用typedef說明一個新類型。
2.結構體和共用體類型數據的定義和成員的引用。
3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。
十一、位運算
1.位運算符的含義和使用。
2.簡單的位運算。
十二、文件操作
只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。
1.文件類型指針(FILE類型指針)。
2.文件的打開與關閉(fopen,fclose)。
3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。
◆ 考試方式
1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。
2.上機:90分鍾,滿分100分
3、上機操作包括:
(1)填空。
(2)改錯。
(3)編程
推薦復習教材《C程序設計》譚浩強主編
㈧ C語言編程題
long fun(int k)
{
if(i<2)
return 1L;
return k*fun(k-1);
}
或:
#include "stdio.h"
main()
{
double h,c;
//printf("Input h ");
scanf("%lf",&h);
c=5.0/9*(h-32);
printf("c=%lf",c);
}
(8)c語言編程筆試題庫擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
㈨ c語言編程題庫
#include <stdio.h>
#include <string.h>
int main()
{
const char *s = "this is si siht";
int i=0, j=strlen(s)-1;
while (i<j) {
if (s[i] != s[j]) {
printf("No\n");
return 0;
}
i++;
j--;
}
printf("Yes\n");
return 0;
}