c語言入門100題的答案
1.
#include
<stdio.h>
int
main()
{
int
y0,
m0,
d0,
y1,
m1,
d1,
age;
while
(
scanf("%d%d%d%d%d%d",
&y0,
&m0,
&d0,
&y1,
&m1,
&d1
)
){
age
=
y1
-
y0
-
1;
if
(
m1
>
m0
||
m1
==
m0
&&
d1
>=
d0
)
++age;
printf("年齡為:%d周歲!\n",
age);
}
return
0;
}
4.
#include
<stdio.h>
#include
<memory.h>
int
main()
{
char
p[500];
int
i,
count;
while
(
scanf("%s",
&p)
){
count
=
0;
for
(
i
=
0;
i
!=
strlen(p);
++i
)
if
(
p[i]
>=
'a'
&&
p[i]
<=
'z'
)
++count;
printf("%d\n",
count);
}
return
0;
}
2.
#include
<stdio.h>
int
main()
{
int
n;
while
(
scanf("%d",
&n)
){
if
(
(
n
&
1
)
==
0
)
printf("%d是偶數!\n",
n);
else
printf("%d,是奇數!\n",
n);
}
return
0;
}
第三題(用EFO結束)?EOF吧?EOF已經是文件尾,怎樣輸出結果?
❷ C語言入門題
首先說明一下,這道題目的答案卻是是 3。
我在編譯器運行了一下你的代碼:
接下來分析一下這個題目的流程:
1、在if(x < y)這個判斷條件中,x==1, y==-1,條件是不成立的,所以走else分支。
2、在else分支中,z==2,現在 z+=1之後, z==3。
3、在最後一步printf中列印最終結果z == 3。
如果以上回答對你有幫助,請採納下,謝謝。
❸ C語言解答!
源程序運行結果:c
分析:定義一個字元型 c1 和 一個整型變數 a
執行c1+=a時 運算為保證其精度會自動將c1轉換成整型變數 也就是c1=97(十進制ASCII碼) 然後加2等於99
輸出是以字元格式輸出 所以輸出為字元 c
1)、運行結果:c
分析:在計算機中 當執行c1 = 'a'時內存存儲的數值就是61(16進制) 10進制就為97 所以運行的結果沒有變化
2)、c1 = "a" 是錯誤的賦值方法
分析:給字元數組賦值才用 " 在有些編譯器(VC++)裡面編譯可以通過 但是會提示警告 最後運行的結果是不可靠的 所以字元賦值用'號
3)、運行結果:99
分析:%d代表以十進制形式輸出帶符號的整數 由上面的分析 c1 = 99 所以輸出99
4)、間接訪問也就是運用指針
#include<stdio.h>
void main()
{
char c1,*p = &c1;
int a;
c1 = 'a';
a = 2;
c1 += a;
printf("%c\n",*p);
}
❹ C語言試題及答案(2)
main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d", a[k]);
}
上面程序的輸出結果是
A.34756
B.23445
C.35743
D.12345
(40) 請讀程序:
#include
#define SUB(X,Y) (X)*Y
main()
{ int a=3, b=4;
printf("%d", SUB(a++, b++));
}
上面程序的輸出結果是
A.12
B.15
C.16
D.20(41) 請讀程序:
#include
main()
{ int mun=0;
while(num<=2)
{ num++; printf("%d ",num);}
}
上面程序的輸出結果是
A.1
B.1
C.1
D.1
2 2 2
3 3
4
(42) 請讀程序:
#include
main()
{ float x,y;
scan("%f",&x);
if(x<0.0) y=0.0
else if((x<5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if (x<10.0) y=1.0/x;
else y=10.0;
printf("%f ",y);
}
若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結果是
A.0.000000
B.0.250000
C.0.500000
D.1.000000
(43) 請讀程序:
#include
main()
{ int x=1, y=0, a=0, b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2:
a++; b++; break;
}
printf("a=%d, b=%d ",a,
B.;
}
上面程序的輸出結果是
A.a=2, b=1
B.a=1, b=1
C.a=1, b=0
D.a=2, b=2
(44) 若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p[i]=&a[i*4];
pp=p;
則對數組元素的錯誤引用是
A.pp[0][1]
B.a[10]
C.p[3][1]
D.*(*(p+2)+2)
(45) 請讀程序:
#include
#include
main()
{ float x,y,z;
scan("%f%f",&x,&y);
z=x/y;
while(1)
{ if(fabs(z)>1.0)
{ x=y; y=z; z=x/y;
}
else break
}
printf("%f ",y);
}
若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是
A.1.500000
B.1.600000
C.2.000000
D.2.400000
(46) 請讀程序:
#include
f(in b[], int n)
{ int i, r;
r=1;
for(i=0; i<=n; i++) r=r*b[i];
return r;
}
main()
{ int x, a[]={ 2,3,4,5,6,7,8,9};
x=f(a, 3);
printf("%d ",x);
}
上面程序的輸出結果是
A.720
B.120
C.24
D.6
(47) 請讀程序:
#include
#include
void fun( char *s)
{ char a[10];
strcpy( a, "STRING");
s=a;
}
main()
{ char *p;
fun(p);
x=f(a, 3);
printf("%s ",p);
}
上面程序的輸出結果是(└┘表示空格)
A.STRING└┘└┘└┘└┘
B.STRING
C.STRING└┘└┘└┘
D.不確定的值
(48) 若已建立下面的鏈表結構,指針p、s分別指向圖中所示的結點,則不能將s所指的結點插入到鏈表末尾的語句組是
A.s->next=NULL; p=p->next; p->next=s;
B.p=p->next; s->next=p->next; p->next=s;
C.p=p->next; s->next=p; p->next=s;
D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;
(49) 請讀程序:
#include
void fun(float *pl, float *p2, float *s)
{ s=( float * )calloc( 1, sizeof(float));
*s=*p1+ *(p2++);
}
main()
{ float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;
fun(a, b, s)
printf("%f ",*s);
}
上面程序的輸出結果是
A.11.100000
B.12.100000
C.21.100000
D.1.100000
(50) 請讀程序:
#include
#include
void fun( char *w, int m)
{ char s, *p1, *p2;
p1=w; p2=w+m-1;
while (p1{ s=*p1++; *p1=*p2--; *p2=s;}
}
main()
{ char a[]="ABCDEFG";
fun( a, strlen(a));
puts(a);
}
上面程序的輸出結果是
A.GFEDCBA
B.AGADAGA
C.AGAAGAG
D.GAGGAGA
二、填空題(每空2分,共40分)
請將每空的正確答案寫在答題卡上【1】-【20】序號後的橫線上,答在試卷上不得分。
(1) DOS命令分為內部命令與外部命令,XCOPY命令是 【1】 命令
(2) 為了列出當前盤當前目錄中所有第三個字元為C的文件名的有關信息,應該用命令 【2】 。
(3) 設當前盤為A盤,當前目錄為XY,A盤上的一個文件QR.C在當前目錄下的子目錄W中。現已將A盤的當前目錄改為DXY,當前盤改為C盤,如需指定A盤上該文件應寫成 【3】 。
(4) 用十六進制給存儲器中的位元組地址進行編號,其地址編號是從0000到FFFF,則該存儲器的容量是【4】KB。
(5) 設有兩個八位二進制數00010101與01000111相加,其結果的十進製表示為 【5】 。
(6) 數學式子 寫成C語言表達式是 【6】 。
(7) 下面程序的輸出結果是 【7】 。
#include
main()
{ static char b[]="Goodbye";
char *chp=&b[7];
while( --chp >=&b[0]) putchar( *chp);
putchar(’ ’);
}
(8) 下面程序的輸出結果是 【8】 。
#include
void as( int x, int y, int *cp, int *dp)
{ *cp=x+y;
*dp=x-y;
}
main()
{ int a=4, b=3, c, d;
as( a, b, &c, &d);
printf( ’%d %d ", c, d);
}
(9) 請讀程序:
#include
main( int argc, char *argv[])
{ int i;
printf( ’%d ", argc);
for( i=0; i<=argc+1; i++) printf( "%s ", argv[i]);
printf(" ");
}
若上面的程序編譯、連接後生成可執行文件ABC.EXE,則輸入以下命令行
abc file1 file2(表示回車)
程序執行後的輸出結果是 【9】 。
(10) 條件“20(11) 設二進制數a是00101101,若想通過異或運算a^b使a的高4位取反,低4位不變,則二進制數b應是 【11】 。
(12) 若有以下說明和定義語句,則變數w在內存中所佔的位元組數是 【12】 。
union aa
{ float x, y;
char c[6];
};
struct st { union aa v; float w[5]; double ave; } w;
(13) 下面程序的輸出結果是 【13】 。
#include
#define N 5
fun( char *s, char a, int n)
{ int j;
*s=a; j=n;
while( ereturn j;
}
main()
{ char s[N+1];
int k, p;
for( k=1; k<=N; k++)
s[k]=’A’+k+1;
printf( "%d ", fun(s, ’E’, N));
}(14) 下面程序的輸出結果是 【14】 。
#include
void fun( char *a1, char *a2, int n)
{ int k;
for( k=0; ka2[k]=( a1[k]-’A’-3+26)&+’A’;
a2[n]=’