當前位置:首頁 » 編程語言 » 川農c語言期末機考答案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

川農c語言期末機考答案

發布時間: 2022-05-03 20:19:56

『壹』 急求c語言作業答案

呵呵,你懸賞分為0啊,要人自己做一個給你是不可能的.........
我在網上找了一個跟你一樣的,你自己修改一下下吧

#include<stdio.h> /*引用庫函數*/
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct /*定義結構體數組*/
{
char num[10]; /*學號*/
char name[20]; /*姓名*/
int score; /*成績*/
}Student;
Student stu[80]; /*結構體數組變數*/
int menu_select() /*菜單函數*/
{
char c;
do{
system("cls"); /*運行前清屏*/
printf("\t\t****Students' Grade Management System****\n"); /*菜單選擇*/
printf("\t\t | 1. Input Records |\n");
printf("\t\t | 2. Display All Records |\n");
printf("\t\t | 3. Sort |\n");
printf("\t\t | 4. Insert a Record |\n");
printf("\t\t | 5. Delete a Record |\n");
printf("\t\t | 6. Query |\n");
printf("\t\t | 7. Statistic |\n");
printf("\t\t | 8. Add Records from a Text File|\n");
printf("\t\t | 9. Write to a Text file |\n");
printf("\t\t | 0. Quit |\n");
printf("\t\t*****************************************\n");
printf("\t\t\tGive your Choice(0-9):");
c=getchar(); /*讀入選擇*/
}while(c<'0'||c>'9');
return(c-'0'); /*返回選擇*/
}
int Input(Student stud[],int n) /*輸入若干條記錄*/
{int i=0;
char sign,x[10]; /*x[10]為清除多餘的數據所用*/
while(sign!='n'&&sign!='N') /*判斷*/
{ printf("\t\t\tstudent's num:"); /*交互輸入*/
scanf("\t\t\t%s",stud[n+i].num);
printf("\t\t\tstudent's name:");
scanf("\t\t\t%s",stud[n+i].name);
printf("\t\t\tstudent's score:");
scanf("\t\t\t%d",&stud[n+i].score);
gets(x); /*清除多餘的輸入*/
printf("\t\t\tany more records?(Y/N)");
scanf("\t\t\t%c",&sign); /*輸入判斷*/
i++;
}
return(n+i);
}
void Display(Student stud[],int n) /*顯示所有記錄*/
{
int i;
printf("\t\t\t-----------------------------------\n"); /*格式頭*/
printf("\t\t\tnumber name score\n");
printf("\t\t\t-----------------------------------\n");
for(i=1;i<n+1;i++) /*循環輸入*/
{
printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].score);
if(i>1&&i%10==0) /*每十個暫停*/
{printf("\t\t\t-----------------------------------\n"); /*格式*/
printf("\t\t\t");
system("pause");
printf("\t\t\t-----------------------------------\n");
}
}
printf("\t\t\t");
system("pause");
}
void Sort_by_num(Student stud[],int n) /*按學號排序*/
{ int i,j,*p,*q,s;
char t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
p=&stud[j+1].score;
q=&stud[j].score;
s=*p;
*p=*q;
*q=s;
}
}
int Insert_a_record(Student stud[],int n) /*插入一條記錄*/
{char x[10]; /*清除多餘輸入所用*/
printf("\t\t\tstudent's num:"); /*互動式輸入*/
scanf("\t\t\t%s",stud[n].num);
printf("\t\t\tstudent's name:");
scanf("\t\t\t%s",stud[n].name);
printf("\t\t\tstudent's score:");
scanf("\t\t\t%d",&stud[n].score);
gets(x);
n++;
Sort_by_num(stud,n); /*調用排序函數*/
printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/
return(n);
}
int Delete_a_record(Student stud[],int n) /*按姓名查找,刪除一條記錄*/
{ char s[20];
int i=0,j;
printf("\t\t\ttell me his(her) name:"); /*互動式問尋*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/
if(i==n)
{ printf("\t\t\tnot find!\n"); /*返回失敗信息*/
return(n);
}
for(j=i;j<n-1;j++) /*刪除操作*/
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
stud[j].score=stud[j+1].score;
}
printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/
return(n-1);
}
void Query_a_record(Student stud[],int n) /*查找並顯示一個記錄*/
{ char s[20];
int i=0;
printf("\t\t\tinput his(her) name:"); /*互動式輸入*/
scanf("\t\t\t%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/
if(i==n)
{ printf("\t\t\tnot find!\n"); /*輸入失敗信息*/
return;

}
printf("\t\t\this(her) number:%s\n",stud[i].num); /*輸出該學生信息*/
printf("\t\t\this(her) score:%d\n",stud[i].score);
}
void Statistic(Student stud[],int n) /*新增功能,輸出統計信息*/
{ int i,j=0,k=0,sum=0;
float aver; /*成績平均值*/
for(i=0;i<n;i++) /*循環輸入判斷*/
{
sum+=stud[i].score;
if(stud[j].score>stud[i].score) j=i;
if(stud[k].score<stud[i].score) k=i;
}
aver=1.0*sum/n;
printf("\t\t\tthere are %d records.\n",n); /*總共記錄數*/
printf("\t\t\tthe hignest score:\n"); /*最高分*/
printf("\t\t\tnumber:%s name:%s score:%d\n",stud[j].num,stud[j].name,stud[j].score);
printf("\t\t\tthe lowest score:\n"); /*最低分*/
printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k].num,stud[k].name,stud[k].score);
printf("\t\t\tthe average score is %5.2f\n",aver); /*平均分*/
}
int AddfromText(Student stud[],int n) /*從文件中讀入數據*/
{ int i=0,num;
FILE *fp; /*定義文件指針*/
char filename[20]; /*定義文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename); /*輸入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打開文件*/
{ printf("\t\t\tcann't open the file\n"); /*打開失敗信息*/
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&num); /*讀入總記錄量*/
while(i<num) /*循環讀入數據*/
{
fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score);
i++;
}
n+=num;
fclose(fp); /*關閉文件*/
printf("\t\t\tSuccessed!\n");
printf("\t\t\t");
system("pause");
return(n);
}
void WritetoText(Student stud[],int n) /*將所有記錄寫入文件*/
{
int i=0;
FILE *fp; /*定義文件指針*/
char filename[20]; /*定義文件名*/
printf("\t\t\tWrite Records to a Text File\n"); /*輸入文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打開文件*/
{
printf("\t\t\tcann't open the file\n");
system("pause");
return;
}
fprintf(fp,"%d\n",n); /*循環寫入數據*/
while(i<n)
{
fprintf(fp,"%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score);
i++;
}
fclose(fp); /*關閉文件*/
printf("Successed!\n"); /*返回成功信息*/
}
void main() /*主函數*/
{
int n=0;
for(;;)
{
switch(menu_select()) /*選擇判斷*/
{
case 1:
printf("\t\t\tInput Records\n"); /*輸入若干條記錄*/
n=Input(stu,n);
break;
case 2:
printf("\t\t\tDisplay All Records\n"); /*顯示所有記錄*/
Display(stu,n);
break;
case 3:
printf("\t\t\tSort\n");
Sort_by_num(stu,n); /*按學號排序*/
printf("\t\t\tSort Suceessed!\n");
printf("\t\t\t");
system("pause");
break;
case 4:
printf("\t\t\tInsert a Record\n");
n=Insert_a_record(stu,n); /*插入一條記錄*/
printf("\t\t\t");
system("pause");
break;
case 5:
printf("\t\t\tDelete a Record\n");
n=Delete_a_record(stu,n); /*按姓名查找,刪除一條記錄*/
printf("\t\t\t");
system("pause");
break;
case 6:
printf("\t\t\tQuery\n");
Query_a_record(stu,n); /*查找並顯示一個記錄*/
printf("\t\t\t");
system("pause");
break;
case 7:
printf("\t\t\tStatistic\n");
Statistic(stu,n); /*新增功能,輸出統計信息*/
printf("\t\t\t");
system("pause");
break;
case 8:
printf("\t\t\tAdd Records from a Text File\n");
n=AddfromText(stu,n); /*新增功能,輸出統計信息*/
break;
case 9:
printf("\t\t\tWrite to a Text file\n");
WritetoText(stu,n); /*循環寫入數據*/
printf("\t\t\t");
system("pause");
break;
case 0:
printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*結束程序*/
printf("\t\t\t");
system("pause");
exit(0);
}
}
}

『貳』 C語言期末考試編程題

1輸入兩個整數a和b,若a和b的平方和大於100,則輸出平方和的百位以上的數字,否則輸出a和 b的和。
要求: 1)輸出結果時說明平方和是大於100還是小於100( >100或<100 )
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d%d", &a, &b);
c = a * a + b * b;
if(c > 100) printf("平方和大於100\n%d\n", c%100);
else printf("平方和小於等於100\n%d\n", a + b);
return 0;
}
2輸入一個整數,判斷是否是5和7的公倍數,若是則輸出:5and7yes,否則再判斷是否是3的倍數,若是3的倍數輸出:3yes,若都不是則輸出:no
#include<stdio.h>
int main(){
int input;
scanf("%d", &input);
if(input % 5 == 0 && input % 7 == 0)printf("5and7yes\n");
else if(input % 3 == 0) printf("3yes\n");
else printf("no\n");
return 0;
}
第三,四題和第二題差不多
5計算公式: [ 2*x x=2
y= [ x*x+1 x<2
[ 2*x*x+3*x+1 x>2
要求: 1)從鍵盤輸入x的值,根據x的值求y的值
2)輸出y的值
#include<stdio.h>
int main(){
int x, y;
scanf("%d", &x);
if(x == 2) y = 2*x;
else if(x < 2) y = x*x+1;
else y = 2 * x * x + 3 * x + 1;
printf("%d\n", y);
return 0;
}
8 和7差不多
下面原理都差不多 用if基本都能搞定 判斷條件就行了 應該LZ能搞定了 東西有點多 -。- 就寫這些吧 其他的就不一一寫了^ ^

『叄』 大一C語言期末考試求題庫

一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字元型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 && (x=a)&&(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變數a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(「%d」,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )位元組。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句「int (*p)( ); 」的含義是( ) 。
A、p是一個指向一維數組的指針變數。
B、p是指針變數,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、編譯出錯

二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 && 、 || 和!;
2、函數的返回值是通過函數中的 return 語句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義後,a[2][2]的值為_6__ _;
4、對於"int *pa[5];" pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變數的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;x>y;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(「%d」, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(「正數:&d個,零:%d個,負數:%d個\n」, count1,count2,count3 );
}

四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1

2、寫出程序運行結果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(「min=%d\n」,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2

3、寫出程序運行結果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(「sum=%d\n」,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15

4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(「f=%d\n」,&f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。

『肆』 2009年4月19日四川計算機2級C語言機試題目或者答案

2007年4月全國計算機等級考試二級筆試試卷
C語言程序設計
(考試時間120分鍾,滿分100分)

一、選擇題((1)—(10)每小題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。

(1)下列敘述中正確的是(B)
A)演算法的效率只與問題的規模有關,而與數據的存儲結構無關
B)演算法的時間復雜度是指執行演算法所需要的計算工作量
C)數據的邏輯結構與存儲結構是一一對應的
D)演算法的時間復雜度與空間復雜度一定相關

(2)在結構化程序設計中,模塊劃分的原則是(D)
A)各模塊應包括盡量多的功能
B)各模塊的規模應盡量大
C)各模塊之間的聯系應盡量緊密
D)模塊內具有高內聚度、模塊間具有低耦合度

(3)下列敘述中正確的是(A)
A)軟體測試的主要目的是發現程序中的錯誤
B)軟體測試的主要目的是確定程序中錯誤的位置
C)為了提高軟體測試的效率,最好由程序編制者自己來完成軟體測試的工作
D)軟體測試是證明軟體沒有錯誤

(4)下面選項中不屬於面向對象程序設計特徵的是(C)
A)繼承性
B)多態性
C)類比性
D)封裝性

(5)下列對隊列的敘述正確的是(D)
A)隊列屬於非線性表
B)隊列按「先進後出」原則組織數據
C)隊列在隊尾刪除數據
D)隊列按「先進先出」原則組織數據

(6)對下列二叉樹
A

B C

D E F X

Y Z

進行前序遍歷的結果為(C)

A) DYBEAFCZX

B) YDEBFZXCA

C) ABDYECFXZ

D) ABCDEFXYZ

(7) 某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數為(A)

A) n+1
B) n-1
C) 2n
D) n/2

(8) 在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是(B)

A) 並
B)交
C)投影
D)笛卡兒乘積

(9)在E-R圖中,用來表示實體之間聯系的圖形是(C)

A) 矩形
B)橢圓形
C)菱形
D)平行四邊形

(10)下列敘述中錯誤的是(A)

A) 在資料庫系統中,數據的物理結構必須與邏輯結構一致

B) 資料庫技術的根本目標是要解決數據的共享問題

C) 資料庫設計是指在已有資料庫管理系統的基礎上建立資料庫

D)資料庫系統需要操作系統的支持

(11)演算法中,對需要執行的每一步操作,必須給出清楚、嚴格的規定,這屬於演算法的(C)

A)正當性
B)可行性
C)確定性
D)有窮性

(12)下列敘述中錯誤的是(D)

A)計算機不能直接執行用C語言編寫的源程序

B)C程序經C編譯程序編譯後,生成後綴為.obj的文件是一個二進制文件

C)後綴為.obj的文件,經連接程序生成後綴為.exe的文件是一個二進制文件

D)後綴為.obj和.exe的二進制文件都可以直接運行

(13)按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是(B)

A)大寫字母
B)連接符
C)數字字元
D)下劃線

(14)以下敘述中錯誤的是(C)

A)C語言是一種結構化程序設計語言

B)結構化程序有順序、分支、循環三種基本結構組成

C)使用三種基本結構構成的程序只能解決簡單問題

D)結構化程序設計提倡模塊化的設計方法

(15)對於一個正常運行的C程序,以下敘述中正確的是(A)

A)程序的執行總是從main函數開始,在main函數結束

B)程序的執行總是從程序的第一個函數開始,在main函數結束

C)程序的執行總是從main函數開始,在程序的最後一個函數中結束

D)程序的執行總是從程序的第一個函數開始,在程序的最後一個函數中結束

(16)設變數均已正確定義,若要通過scanf(「%d%c%d%c」,&a1,&c1,&a2,&c2);語句為變數a1和a2賦數值10和20,為變數c1和c2賦字元X和Y。以下所示的輸入形式中正確的是(註:□代表空格字元)(D)
A)10□X□20□Y〈回車〉
B)10□X20□Y〈回車〉
C)10□X〈回車〉
D)10X〈回車〉

20□Y〈回車〉 20Y〈回車〉

(17)若有代數式(其中e僅代表自然對數的底數,不是變數),則以下能夠正確表示該代數式的C語言表達式是(C)
A)sqrt(abs(n^x+e^x))
B) sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x)))
D) sqrt(fabs(pow(x,n)+exp(x)))

(18)設有定義:int k=0;,以下選項的四個表達式中與其他三個表達式的值不相同的是(A)
A)k++
B)k+=1
C)++k
D)k+1

(19)有以下程序,其中%u表示按無符號整數輸出(B)

main()

{unsigned int x=0xFFFF; /* x的初值為十六進制數 */

printf(「%u\n」,x);

}
程序運行後的輸出結果是
A)-1
B)65535
C)32767
D)0xFFFF

(20)設變數x和y均已正確定義並賦值,以下if語句中,在編譯時將產生錯誤信息的是(C)

A)if(x++);
B)if(x>y&&y!=0);

C)if(x>y) x- -
D)if(y<0) {;}

else y++; else x++;

(21)以下選項中,當x為大於1的奇數時,值為0的表達式(D)

A)x%2==1
B)x/2
C)x%2!=0
D)x%2==0

(22)以下敘述中正確的是(C)

A)break語句只能用於switch語句體中

B)continue語句的作用是:使程序的執行流程跳出包含它的所有循環

C)break 語句只能用在循環體內和switch語句體內

D)在循環體內使用break語句和continue語句的作用相同

(23)有以下程序(A)

main()

{int k=5,n=0;

do

{switch(k)

{case1: case3:n+=1; break;

default;n=0;k--;

case2: case4:n+=2;k--;break;

}

printf(「%d」,n);

}while(k>0&&n<5);

}

程序運行後的輸出結果是
A)235
B)0235
C)02356
D)2356

(24)有以下程序

mian()

{int i,j;

for(i=1;i<4;i++)

{for(j=i;j<4;j++) printf(「%d*%d=%d 「,i,j,i*j);

printf(「\n」);

}

}

程序運行後的輸出結果是(B)
A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6

3*1=3 3*3=9

C) 1*1=1 D) 1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9

(25)以下合法的字元型常量是(A)

A)」\x13」
B)」\018」
C)」65」
D)」\n」

(26)在C語言中,函數返回值的類型最終取決於(A)

A)函數定義時在函數首部所說明的函數類型

B)return語句中表達式值的類型

C)調用函數時主函數所傳遞的實參類型

D)函數定義時形參的類型

(27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變數c中大寫字母轉換為對應小寫字母的語句是(D)

A)c=(c-A)&+』a』
B)c=c+32

C)c=c-『A』+』a』
D)c=(『A』+c)&-『a』

(28)有以下函數

int fun(char *s)

{char *t=s;

while(*t++);

return(t-s);

}

該函數的功能是(B)

A)比較兩個字元的大小
B)計算s所指字元串佔用內存位元組的個數

C)計算s所指字元串的長度
D)將s所指字元串復制到字元串t中

(29)設已有定義:float x;則以下對指針變數p進行定義且賦初值的語句中正確的是(D)
A)float *p=1024;
B)int *p=(float x);

C)float p=&x;
D)float *P=&x;

(30)有以下程序

#include

main()

{int n,*p=NULL;

*p=&n;

printf(「Input n:」); scanf(「%d」,&p); printf(「output n:」); printf(「%d\n」,p);

}

該程序試圖通過指針p為變數n讀入數據並輸出,但程序有多處錯誤,以下語句正確的是(A)

A)int n,*p=NULL;
B)*p=&n;
C)scanf(「%d」,&p)
D)printf(「%d\n」,p);

(31)以下程序中函數f的功能是:當flag為1時,進行有由小到大排序;當flag為0時,進行由大到小排序。

void f(int b[],int n,int flag)

{int i,j,t;

for(i=0;i

for (j=i+1;j

if(flag?b[i]>b[j]:b[i]

}

main()

{int a[10]={5,4,3,2,1,6,7,8,9,10},i;

f(&a[2],5,0); f(a,5,1);

for(i=0;i<10;i++) printf(「%d,」a[i]);

}

程序運行後的輸出結果是(B)

A)1,2,3,4,5,6,7,8,9,10,
B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,2,1,6,7,8,9,10,
D)10,9,8,7,6,5,4,3,2,1,

(32)有以下程序

void f(int b[])

{int i;

for(i=2;i<6;i++) b[i]*=2;

}

main()

{int a[10]={1,2,3,4,5,6,7,8,9,10},i;

f(a);

for(i=0;i<10;i++) printf(「%d,」,a[i]);

}

程序運行後的輸出結果是(B)

A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10

C)1,2,3,4,10,12,14,16,9,10,

D)1,2,6,8,10,12,14,16,9,10,

(33)有以下程序

typedef struct{int b,p;}A;

void f(A c) /*注意:c是結構變數名 */

{int j;

c.b+=1; c.p+=2;

}

main()

{int i;

A a={1,2};

f(a);

printf(「%d,%d\n」,a.b,a.p);

}

程序運行後的輸出結果是(D)

A)2,3
B)2,4
C)1,4
D)1,2

(34)有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;

for(i=0;i<4;i++)

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf(「%d,」,a[i][j]);

}

程序運行後的輸出結果是(A)

A)1,6,5,7,
B)8,7,3,1,
C)4,7,5,2,
D)1,6,2,1,

(35) 有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;

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

for(k=i+i;k<4;k++) if(a[i][i]

for(i=0;i<4;i++)printf(「%d,」,a[0][i]);

}

程序運行後的輸出結果是(B)
A)6,2,1,1,
B)6,4,3,2,
C)1,1,2,6,
D)2,3,4,6,

(36) 有以下程序

void f(int *q)

{int i=0;

for( ; i<5;i++)(*q)++;

}

main()

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

f(a);

for(i=0;i<5;i++)printf(「%d,」,a[i]);

}

程序運行後的輸出結果是(B)

A)2,2,3,4,5,
B)6,2,3,4,5,
C)1,2,3,4,5,
D) 2,3,4,5,6,

(37) 有以下程序

#include

main()

{char p[20]={『a』,』b』,』c』,』d』},q[]=」abc」, r[]=」abcde」;

strcpy(p+strlen(q),r); strcat(p,q);

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

}

程序運行後的輸出結果是(C)

A)20 9
B)9 9
C)20 11
D)11 11

(38) 有以下程序

#include

main()

{char p[20]={『a』,』b』,』c』,』d』},q[]=」abc」, r[]=」abcde」

strcat(p,r); Strcpy(p+strlen(q),q);

Printf(「%d \n」,sizeof(p));

}

程序運行後的輸出結果是(B)

A)9
B)6
C)11
D)7

(39) 有以下程序

#include

main()

void f(char p[][10], int n ) /* 字元串從小到大排序 */

{ char t[10]; int i,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }

}

main()

{char p[5][10]={「abc」,」aabdfg」,」abbd」,」dcdbe」,」cd」};

f(p,5);

printf(「%d\n」,strlen(p[0]));

}

程序運行後的輸出結果是(C)

A) 2
B) 4
C) 6
D) 3

(40) 有以下程序

void f(int n, int *r)

{int r1=0;

if(n%3==0) r1=n/3;

else if(n%5==0) r1=n/5;

else f(--n,&r1);

*r=r1;

}

main()

{int m=7,r;

f(m,&r); printf(「%d\n,r」);

}

程序運行後的輸出結果是(A)

A) 2
B) 1
C)3
D) 0

(41)有以下程序

main(int argc,char *argv[])

{int n=0,i;

for(i=1;i n=n*10+*argv[i]-『0』;

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

}

編譯連接後生成可執行文件tt.exe,若運行時輸入以下命令行

tt 12 345 678

程序運行後的輸出結果是(D)

A) 12
B) 12345
C)12345678
D) 136

(42) 有以下程序

int a=4;

int f(int n)

{int t=0; static int a=5;

if(n%2) {int a=6; t+=a++;}

else {int a=7 ;t+=a++;}

return t+a++;

}

main()

{int s=a,i=0;

for(;i〈2;i++) s+=f(i);

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

}

程序運行後的輸出結果是(B)

A)24
B)28
C)32
D)36

(43) 有一個名為init.txt的文件,內容如下:

#define HDY(A,B) A/B

# define PRINT(Y) Printf(「y=%d\n.,Y)

有以下程序

#include 「init.txt」

main()

{int a=1,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

PRINT(K);

}

下面針對該程序的敘述正確的是(D)

A)編譯有錯
B)運行出錯

C)運行結果為 y=0
D) 運行結果為 y=6

(44) 有以下程序

main()

{char ch[]=「uvwxyz」,*pc;

Pc=ch; printf(「%c\n」,*(pc+5));

}

程序運行後的輸出結果是(A)

A)z
B)0
C)元素ch[5]的地址
D)字元y的地址

(45) 有以下程序

struct S {int n; int a[20];};

void f(struct S *P)

{int i,j,t;

for(i=0;in-1;i++)

for(j=i+1;jn;j++)

if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }

}

main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(&s);

for(i=0;i printf(「%d」,s.a[i]);

}

程序運行後的輸出結果是(A)

A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,

C)2,3,1,6,8,7,5,4,10,9,
D)10,9,8,7,6,1,2,3,4,5,

(46) 有以下程序

struct S{ int n; int a[20]; };

void f(int *a,int n)

{int i;

for(i=0;i a[i]+=i;

}

main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a, s.n);

for(i=0;i printf(「%d」,s.a[i]);

}

程序運行後的輸出結果是(A)

A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,

C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,

(47) 有以下程序段

typedef struct node { int data; struct node *next; } *NODE;

NODE p;

以下敘述正確的是(C)

A)p是指向struct node結構變數的指針的指針

B)NODE p;語句出錯

C)p是指向struct node結構變數的指針

D)p是struct node結構變數

(48)有以下程序

main()

{unsigned char a=2,b=4,c=5,d;

d=a|b; d&=c; printf(「%d\n」,d); }

程序運行後的輸出結果是(B)

A)3
B)4
C)5
D)6

(49)有以下程序

#include

main()

{FILE *fp; int k,n,a[6]={1,2,3,4,5,6};

fp=fopen(「d2.dat」,」w」);

fprintf(fp,」%d%d\n」,a[0],a[1],a[2]); fprintf(fp, 「%d%d%d \n」,a[3],a[4],a[5]);

fclose(fp);

fp=fopen(「d2.dat」,」r」);

fscanf(fp, 「%d%d」,&k,&n); printf(「%d%d\n」,k,n);

fclose(fp);

}

程序運行後的輸出結果是(D)

A)1 2
B)1 4
C)123 4
D) 123 456

(50)有以下程序

#include

main ()

{FILE *fp; int i,a[6]={1,2,3,4,5,6k};

fp=fopen(「d3.dat」,」w+b」);

fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*該語句使讀文件的位置指針從文件頭向後移動3個int型數據*/

fread(a,sizeof(int),3,fp); fclose(fp);

for(i=0;i<6;i++) printf(「%d,」,a[i]);

}

程序運行後的輸出結果是(A)

A)4,5,6,4,5,6,
B)1,2,3,4,5,6,
C)4,5,6,1,2,3,
D)6,5,4,3,2,1,

二.填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分。注意:以命令關鍵字填空的必須寫完整.

(1) 在深度為7的滿二叉樹中,度為2的結點個數為___63____。

(2) 軟體測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬於__黑箱(或黑盒) 測試。

(3) 在資料庫系統中,實現各種數據管理功能的核心軟體稱為 __資料庫管理系統__。

(4) 軟體生命周期可分為多個階段,一般分為定義階段、開發階段和維護階段。編碼和測試屬於 開發_____階段。

(5)在結構化分析使用的數據流圖(DFD)中,利用數據字典 對其中的圖形元素進行確切解釋。

(6)執行以下程序後的輸出結果是 a=14 。

main()

{int a=10;

a=(3*5,a+4); printf(「a=%d\n」,a);

}

(7) 當執行以下程序時,輸入1234567890<回車>,則其中while循環體將執行 0 次。

#include

main()

{char ch;

While((ch=getchar())==』0』) printf(「#」);

}

(8) (8)以下程序的運行結果是 m=4 k=4 i=5 k=5 。

int k=0;

void fun(int m)

{ m+=k; k+=m; printf(「m=%d\n k=%d 」,m,k++);}

main()

{ int i=4;

fun(i++); printf(「i=%d k=%d\n」,i,k);

}

(9) (9)以下程序的運行結果是 #& 。

main()

{int a=2,b=7,c=5;

switch(a>0)

{case 1:switch(b<0)

{case 1:switch(「@」); break;

Case 2: printf(「!」); break;

}

case 0: switch(c==5)

{ case 0: printf(「*」); break;

case 1: printf(「#」); break;

case 2: printf(「$」); break;

}

default : printf(「&」);

}

printf(「\n」);

}

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

# include

main()

{ printf(「%d\n」,strlen(「IBM\n012\1\\」));

}

(11)已定義char ch=」$」;int i=1,j;執行j=!ch&&i++以後,i的值為1

(12)以下程序的輸出結果是 5 4

# include

main()

{ char a[]={『\1』,』\2』,』\3』,』\4』,』\0』};

printf(「%d %d\n」,sizeof(a),srelen(a));

}

(13)設有定義語句:int a[][3]={{0},{1},{2}};,則數組元素a[1][2]的值為 0

(14)以下程序的功能是:求出數組x中各相鄰兩個元素的和依次存放到a數組中,然後輸出。請填空。

main()

{int x[10],a[9],I;

for (i=0;i<10;i++)

scanf(「%d」,&x[i]);

for( i=1 ;i<10;i++)

a[i-1]=x[i]+ x[i-1] ;

for(i=0;i<9;i++)

printf(「%d」,a[i]);

printf(「\n」);

(15) 以下程序的功能是:利用指針指向三個整型變數,並通過指針運算找出三個數中的最大值,輸出到屏幕上,請填空:

main()

{int x,y,z,max,*px,*py,*pz,*pmax;

scanf(「%d%d%d」,&x,&y,&z);

px=&x;

py=&y;

pz=&z;

pmax=&max;

*pmax=*px(或*pmax=x) ;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf(「max=%d\n」,max);

}

(16)以下程序的輸出結果是 10

int fun(int*x,int n)

{if(n==0)

return x[0];

else return x[0]+fun(x+1,n-1);

}

main()

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

printf(「%d\n」,fun(a,3));

}

(17)以下程序的輸出結果是 35

# include

main()

{char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;

*s2=20;

m=*s1+*s2;

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

}

(18)設有說明

struct DATE{int year;int month; int day;};

請寫出一條定義語句,該語句定義d為上述結構體變數,並同時為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};

(19) 設有定義:FILE *fw;,請將以下打開文件的語句補充完整,以便可以向文本文件readme.txt的最後續寫內容。

fw=fopen(「readme.txt」, "a" )

2007年4月全國計算機等級考試二級C語言筆試試題答案

一、選擇題:
1-5 24134

6-10 31321

11-15 34231

16-20 43113

21-25 43421

26-30 14241

31-35 22412

36-40 23232

41-45 42411

46-50 13241

二、填空題:

1. 63

2,墨盒
3.DBNS
4,開發
5,數據 字典
6,a-14
7,0
8,無答案
9,# 與號
10,9
11,1
12,5_4
13,13 0
14,i=1
15,X[i-1]
16,無答案
17,10
18,40
19,無答案
20,"20a"
參考資料:http://www.examda.com/ncre2/C/zhenti/20070902/160001753.html

『伍』 求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

『陸』 幫幫忙啊 急啊! 關於C語言程序設計的考試!!!幫忙給下正確答案啊

最笨的辦法,填空題把它弄到環境中 一運行不就出來了...還保證正確

『柒』 期末考試C語言試題!!!!求解答!!!

代碼文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int s,i;

s=0,i=1;

do{

s += i*i+i++;

}while(i<101);

printf("1*2+2*3+3*4+...+100*101 = %d ",s);

return 0;

}

『捌』 c語言程序設計期末考試樣題

1、答案:A(單引號括起來的都是字元,而且一對單引號最多對應一個字元,\反斜杠是轉義字元的開始,\72是ASCII碼對應的字母H。也就是把H這個字母存到了變數chara中。就一個字元H。)2、ACDE解析:inta=3,b=4,c=5;,A、a>bB、a<=bC、(a||b)>cD、a<=(b||c)E、!((a<b)&&!c||b)優先順序由大到小:()!&&||A選項,3>4錯誤,邏輯值0。B選項,35,(3||4)"或"邏輯運算符兩邊只要有一個非0的整個值就是1,1>5錯,邏輯值0。D選項,3<=(4||5)錯誤,邏輯值0。E選項,!((3<4)&&!5||4),先(3<4)邏輯值1,!5邏輯值0,1&&0是0,0||4是1,!1是0,所以邏輯值0。3、AC。解析:A可以,B答案b不能被賦值(自左向右,計算||左側就已經是1了右邊就不用再計算了整個表達式無論右邊如何整個邏輯值必定是1,計算機也就不會計算右邊了)C可以(因為&&兩邊都必須計算才能得出最後的邏輯值答案),D不可以a不能被賦值(&&左邊就一個a,構不成賦值,可能存放一個隨機值,右邊可以被賦值)。4、ABCD。外部函數幾乎可以被所有函數調用。只要開頭#include」"引入。