當前位置:首頁 » 編程語言 » 燕山大學c語言程序設計試題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

燕山大學c語言程序設計試題

發布時間: 2022-07-12 23:42:07

『壹』 c語言編程試題

1、
#include<stdio.h>
int main()
{
int n;
int s=0;

scanf("%d",&n);

for (int i=1;i<=n;i++)
{
s += 1/i
}
printf("輸出為:%d",s);
}
2、
#include<stdio.h>
int main()
{
int s=0;

for (int i=1;i<=100;i++)
{
s += i
}
printf("輸出為:%d",s);
}
3、
#include<stdio.h>
int main()
{
int n;
int s=1;

if (0<n<17)
{
for (int i=1;i<=n;i++)
{
s = s*i;
}
}
printf("輸出為:%d",s);
}
4、

5、
#include<stdio.h>
int main()
{
int x;
int i,f;
f=0;
scanf("%d",&x);

for(i=2;i<x;i++)
{
if(x%i==0) {
f=1;
break;
}
else {
f=0;
continue;
}
}
if(f)
printf("no\n");
else
printf("yes\n");}
}

兩年多沒有接觸C語言了。不知道對不對,第四題還真的忘記了,大學時做過

『貳』 請求教C語言程序設計試題;請求幫助!!

1.D 2.A 3.B 4.B 5.D 6.A 7.C 8.B 9.B 10.D
11.D 12.D 13.A 14.A
1. 3 2. \X 3. 1 4. sin(x)+sqrt(x)-6*x 5. 1 6. string.h 7. 嵌套 8. 地址傳遞 9. 5 10. 12

『叄』 c語言程序設計大一試題,請各路大蝦支援!在線等- -

1
#include <stdio.h>

int main(void)
{
int n, i, sum = 0;
scanf("%d", &n);

for (i = 1; i <= n; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}

2,

#include <stdio.h>

int main(void)
{
int n, i;
long a = 1, result = 0;
printf("請輸入1到15的整數\n");
while (scanf("%d", &n) != EOF)
{
if (n > 15 || n < 1)
printf("請輸入1到15的整數\n");
else break;
}
for (i = 1; i <= n; i++)
{
a *= i;
result += a;
}
printf("sum = %d\n", result);
return 0;
}

3,

#include <stdio.h>

int main(void)
{
int n, count = 0;
int i, j, k;
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
if (j != i)
{
for (k = 1; k < 5; k++)
{
if (k != i && k != j)
{
n = i * 100 + j * 10 + k;
printf("%d ", n);
count++;
}
}
}
}
}
printf("\ncount = %d\n", count);
return 0;
}

4,
#include <stdio.h>

int main(void)
{
float a, b;
scanf("%f", &a);

if (a > 20)
b = 10 * 0.1 + 10 * 0.075 + (a - 20) * 0.05;
else if (a > 10)
b = 10 * 0.1 + (a - 10) * 0.075;
else b = a * 0.1;

printf("\n利潤 = %.3f萬\n", b);
return 0;
}
5,
#include <math.h>
#include <stdio.h>

int main()
{
int i,x,y,z;
for (i=1;;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
{
printf("\n%d\n",i);
break;
}
}
return 0;
}

6,
#include <stdio.h>

int main()
{
int t, x, y, z;
scanf("%d%d%d", &x, &y, &z);
if (x > y)
{
t = x;
x = y;
y = t;
}

if (x > z)
{
t = z;
z = x;
x = t;
}

if (y > z)
{
t = y;
y = z;
z = t;
}
printf("%d, %d, %d", x, y, z);
return 0;
}
7,
#include <stdio.h>

int main()
{
int i, j;
int flag, count = 0;
for (i = 101; i <= 200; i++)
{
flag = 1;
for (j = 2; j * j <= i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
count++;
printf("%d ", i);
}
}
printf("\ncount = %d\n", count);
return 0;
}

『肆』 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循環時則相反。
另外,站長團上有產品團購,便宜有保證

『伍』 C語言編程比賽試題

#include <stdio.h>
#include <stdlib.h>
#include<string.h>

int main()
{
int n,i,j;
char p[10000];
while(scanf("%d",&n)!=EOF)
{
getchar();
for(i=0;i<n;i++)
{
gets(p);
putchar(p[0]);
for(j=1;j<strlen(p);j++)
printf(" %c",p[j]);
printf("\n");
}
}
}

『陸』 c語言程序設計試題+統計

int a[20];
int Plus=0;int CountPlus=0;
int Negative=0; int CountNegative=0;
int zero=0;
for (int i=0;i!=20;i++)
{
cin>>a[i];
if (a[i]>0)
{
Plus+=a[i];
CountPlus++;
}
if (a[i]<0)
{
Negative+=a[i];
CountNegative++
}
else
zero++;
}
開頭結尾自己搞定吧

『柒』 C++程序設計期末試題與答案

int temp;
temp=x; x=y; y=temp;
}
void main()
{
int x=10,y=20;
swap(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
}
解:
這里的函數採用引用調用的方式,所以輸出為:x=20,y=10
注意:在函數調用里,引用調用與傳址調用的效果相同,但更加簡潔直觀。

----------------------------------------------------------

題2.分析以下程序的執行結果
#include<iostream.h>
void main()
{
int a[]={10,20,30,40},*pa=a;
int *&pb=pa;
pb++;
cout<<*pa<<endl;
}
解:
pa為數組的指針,首先指向a[0],pb是pa的引用,當執行pb++時,也使pa指向了a[1],所以輸出為:20

-------------------------------------------------------------

題3.分析以下程序的執行結果
#include<iostream.h>
class Sample
{
int x;
public:
Sample(){};
Sample(int a){x=a;}
Sample(Sample &a){x=a.x++ +10;}
void disp(){cout<<"x="<<x<<endl;}
};
void main()
{
Sample s1(2),s2(s1);
s1.disp();
s2.disp();
}
解:
Sample類的Sample(Sample &a)構造函數是一個拷貝構造函數,將a對象的x增1然後加上10後賦給當前對象的x,由於a是引用對象,所以輸出為:
x=3 // ++運算的結果
x=12 // 2+10

--------------------------------------------------------------

題4.分析以下程序的執行結果
#include<iostream.h>
class Sample
{
int x,y;
public:
Sample(){x=y=0;}
Sample(int i,int j){x=i;y=j;}
void (Sample &s);
void setxy(int i,int j){x=i;y=j;}
void print(){cout<<"x="<<x<<",y="<<y<<endl;}
};
void Sample::(Sample &s)
{
x=s.x;y=s.y;
}
void func(Sample s1,Sample &s2)
{
s1.setxy(10,20);
s2.setxy(30,40);
}
void main()
{
Sample p(1,2),q;
q.(p);
func(p,q);
p.print();
q.print();
}
解:
本題說明對象引用作為函數參數的作用。Sample類中的()成員函數進行對象拷貝。在main()中先建立對象p和q,p與q對象的x,y值相同,調用func()函數,由於第2個參數為引用類型,故實參發生改變;而第1個參數不是引用類型,實參不發生改變。所以輸出為:
x=1,y=2
x=30,y=40

-------------------------------------------------------

題5.設計一個Book類,包含圖書的書名、作者、月銷售量等數據成員,其中書名和作者採用字元型指針,另有兩個構造函數、一個析構函數和兩個成員函數setbook()和print(),其中setbook()用於設置數據,print()用於輸出數據,其說明如下:
void print(ostream& output)
即引用輸出流。
解:
依題意,本題程序如下:
#include<iostream.h>
#include<string.h>
class Book
{
char *title; // 書名
char *author; // 作者
int numsold; // 月銷售量
public:
Book(){}
Book(const char *str1,const char *str2,const int num)
{
int len=strlen(str1);
title=new char[len+1];
strcpy(title,str1);
len=strlen(str2);
author=new char[len+1];
strcpy(author,str2);
numsold=num;
}
void setbook(const char *str1,const char *str2,const int num)
{
int len=strlen(str1);
title=new char[len+1];
strcpy(title,str1);
len=strlen(str2);
author=new char[len+1];
strcpy(author,str2);
numsold=num;
}
~Book()
{
delete title;
delete author;
}
void print(ostream& output) // 輸出流引用作為參數
{
output<<"輸出數據"<<endl;
output<<" 書名:"<<title<<endl;
output<<" 作者:"<<author<<endl;
output<<" 月銷售量:"<<numsold<<endl;
}
};
void main()
{
Book obj1("C語言程序設計","譚浩強",800),obj2;
obj1.print(cout);
obj2.setbook("C++語言程序設計","李春葆",300);
obj2.print(cout);
}
本程序的執行結果如下:
輸出數據
書名:C語言程序設計
作者:譚浩強
月銷售量:800
輸出數據
書名:C++語言程序設計
作者:李春葆
月銷售量:300

『捌』 c語言程序設計試題

這是一個數字推理題:
4位的車牌號,前兩位一樣,後兩位一樣,而且還可以開方成一個整數。所以我們先設定一個模型假定這個數字是aabb,之後根據循環開方來判斷篩選。(由於現在機器上沒有安裝c,所以程序有可能出錯,不過你可以自己改的)
include<iostream>
include<cmath>
int main()
{
using namespace std;
int a(0),b(0),c;
c=a*1000+a*100+b*10+b; //這一句賦值給c車牌號,根據題意aabb型的數字
for(a;a<10;a++)
{
for(b;b<10;b++)
{
float(d)= sqrt(c); //開方這個數
if(d==int(d)) //判斷這個被開方得結果是否位整數
cout << d << endl;
}
}
return 0;
}

『玖』 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);
}

『拾』 求一份C語言程序設計的期末考試試題!!!謝謝了

一. 選擇題 (共15題, 每題2分,共30分)

1. 定義結構體的關鍵字是( )

A. union B. enum C.struct D.typedef

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

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

3. 下面哪一項是不正確的字元串賦值或賦初值的方法( )

A. char *str; str= 「china」;

B. char str[7]= {『c』, 『h』, 『i』, 『n』, 『a』};

C. char str1[]= 「china」,str2[]=「123」;

D. char str1[10]; str1= 「china」;

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

5. 選出下列標識符中不是合法的標識符的是( )

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

6. 以下說法中正確的是( )

A. C語言程序總是從第一個的函數開始執行

B. 在C語言程序中,要調用的函數必須在main()函數中定義

C. C語言程序總是從main()函數開始執行

D. C語言程序中的main()函數必須放在程序的開始部分

7. 若已定義:int a[9], *p=a;並在以後的語句中未改變p的值,不能表示a[1]地址的表達式為( )

A. p+1 B. a+1 C. a++ D. ++p

8. 若有說明: int i,j=7, *p=&i;, 則與i=j; 等價的語句是( )

A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;

9. 若變數c為char類型,能正確判斷出c為小寫字母的表達式是( )

A. 『a』<=c<= 『z』 B. (c>= 『a』) || (c<= 『z』)

C. (『a』<=c) and (『z』>=c) D. (c>= 『a』) && (c<= 『z』)

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

main()

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

p=a;

*(p+3)+=2;

printf( 「%d,%d\n」,*p,*(p+3) ); }

A. 0, 5 B. 1, 6 C. 1, 5 D. 0, 6

11. 以下程序的輸出結果是( )

main()

{ 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

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 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

14. 下列程序段的輸出結果是 ( )

void main( )

{ int k;

for (k=1;k<5;k++)

{ if(k%2!=0)

printf( 「#」 );

else

printf(「*」) ; }

}

A. #*#* B . *#*# C. ## D. **

15. 下列程序執行後輸出的結果是( )

int d=1;

fun (int p)

{ int d=5;

d + =p + +;

printf("%d,",d); }

main( )

{ int a=3;

fun(a);

d + = a + +;

printf("%d\n",d); }

A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5

二. 填空題(共7題,每空2分,共30分)

1. 數組 int a[3][5]; 共定義了_______________個元素。

2. 有float f=3.1415927; 則 printf(「%5.4f」, f );輸出的結果是_______________。

3. 下面程序的功能是:輸出 100以內(不包含100)能被 3整除且個位數為 6的所有整數,請填空。

main( )

{ int i;

for(i=1; _______________; i++)

if (_______________)

printf("%d", i);

}

4. 設有「int x=2, y」說明,則逗號表達式「y=x+5,x+y」的值是 _______________

5. 以下是使用指針,進行字元串復制的程序,請填空。

main()

{ char a[]= 「Tsinghua University」, b[30], *p1,*p2;

p1=a;

p2=b;

for(; *p1!= 『_______________』; p1++, p2++)

_______________=_______________;

*p2= 『_______________』;

printf(「string a is:%s\n」,a);

printf(「string b is:%s\n」,b);

}

6. 下面程序用冒泡法對數組a進行降序排序,請填空。

main()

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

int i,j,m;

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

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

if( _______________< _______________ )

{ m=a[ j];

a[ j]=a[ j+1];

a[ j+1]= m; }

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

printf("%d ",a[i]);

}

7. 函數fun的功能是:使一個字元串按逆序存放,請填空。

void fun (char str[])

{ char m; int i,j;

for(i=0,j=strlen(str);i<_______________;i++,j--)

{ m=str[i];

str[i]= _______________;

str[j-1]=m;

}

printf("the rotated string is %s\n",_______________);

}