}
3。 以下程式的輸出結果是_______。
#include
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
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
#include
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給定平面任意兩點座標 (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
#include
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
int main(void)
{
int i, sum = 0;
/*————-*/
printf(“%d”, sum);
}
程式填空,不要改變與輸入輸出有關的語句。
輸入一個正整數repeat (0讀入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
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);
}
}
……程式設計題還有好多~~需要的話可以發給你~
京弘百里初陽
2020-07-13
一份曾經的考卷+答案~~//後面的程式設計題是以前做過的實驗~~
《程式設計基礎-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
(Aprintf(“%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;
ii++)
scanf(“%d”,&a[i]);
for
(i=0;
ii++)
for
(j=0;
jj++)
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;iscanf(“%d”,
&x[i]);
if(x[i]
%
2==0)
y1[n1++]=x[i];
else
y2[n2++]=x[i];
}
for(i=1;
ii++)
for(j=0;
jj++)
if(y1[j]>y1[j+1]){
t=y1[j];
y1[j]=y1[j+1];
y1[j+1]=t;
}
for(i=0;
ii++){
p=i;
for(j=i+1;
jj++)
if(y2[p]p=j;
if(p!=i){
t=y2[i];
y2[i]=y2[p];
y2[p]=t;
}
}
for(i=0;
ii++)
printf(“%d,
”,
y1[i]);
for(i=0;
ii++)
printf(“%d,
”,
y2[i]);
}
3。
以下程式的輸出結果是_______。
#include
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
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
#include
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給定平面任意兩點座標
(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
#include
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
int
main(void)
{
int
i,
sum
=
0;
/*————-*/
printf(“%d”,
sum);
}
程式填空,不要改變與輸入輸出有關的語句。
輸入一個正整數repeat
(0讀入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
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);
}
}
……程式設計題還有好多~~需要的話可以發給你~
救贖削腎客
2010-04-02
要簡單的還是複雜的?
簡單的:
輸出一個 △
用*如下圖
*
**
***
難一點的
編寫一個五子棋遊戲。
以後我上的比較多。我這裡問題多這呢。
你也可以到專業的程式設計網站去看看
劉小禎
2010-04-05
我這也有,要要的話發給你哈。。。。
xuke537
2010-04-02
99乘法表
輸入十個從大到小數排序
輸入日期YYYYMMDD判斷是不是閏年,這個月有多少天,這個日期的前一天和後一天。