1、第二章 一.选择题 1.C 2.B D 3.A 4.A 5. D 6.C 7.D 8.C 9.A 10.D 11.B 12.D 13.C 14.D 15.A 16.B 17.A 18.B 100011 001111 二.判定题 1.错 2.错 3.错 4.错 三.填空题 1. B 66 2. n1=%d\nn2=%d\n 3. 0 四.计算 1 (1) x|y = 0x002f (2) x^y =
2、 0x0026 (3) x&y = 0x0009; (4) ~x+~y = 0xffc6 (5) x<<=3 0x0068 (6) y>>=4 0x0002 2 (1) 6 (2) 50 (3) 1 (4) –16 (5) 1 (6) 20 3 (1) 0 (2) 1 (3) 1 (4) 4 (5) 8 (6) 1 4 (1) 12 (2) 0 (3) 1 (4) 27 (5) 1 (6) 6 (7) 24 (8) 27 (9) –29 5 (1) 0 (2) 1 (3) 1 (4) –3 (5) 2 五.程序分
3、析题 程序1 b=20 a=3600 程序2 第三章 一.填空题 1.s=6 2.96 3.(1) scanf("%c",&c); (2) c-32 愈加好答案:c-('a'-'A') 2.1 main() { int a,b; printf("please input a & b:"); scanf("%d%d",&a,&b); printf("\nmax is %d\n",(a>b)?a:b); } 2.2 int max(int x,int y); main() { int a,b,c,max; printf("p
4、lease input a & b & c:"); scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; max=c>max?c:max; printf("\nmax is %d\n",max); } 2.3 main() { int i=0,sum=0; while(i<=100) { sum+=i; i++; } printf("1+2+3+......+100=%d\n",sum); } 2.4 main() { int i; int a=10,b=-3; int c;
5、 printf("%6d%6d",a,b); for(i=2;i<10;i++) { c=3*b+a; printf("%6d",c); a=b; b=c; } printf("\n"); } 2.5 main() { int i; while(1) { printf("please input a data(0:exit):"); scanf("%d",&i); if(i==0) break; if(i%2==0) printf(
6、"the data %d is a even number.\n",i);
else
printf("the data %d is a odd number.\n",i);
}
}
2.6
#include
7、he Sum Of Is:%d\n",sum);
}
2.7
#include
8、 { printf("please input data(1-99999):"); scanf("%ld",&a); printf("a:%ld\n",a); if(a<=0||a>=100000) break; i=0; a1=0; while(a!=0) { b=a%10; printf("%8d",b); a/=10; i++; a1=a1*10+b; } printf("\n i:%ld
9、a1:%ld\n",i,a1);
}
}
2.9
#include
10、 k++; printf("\n%d:Smaller,guess again!\n",k); } else if(a
11、}
if(k==20)
printf("\nsorry,you failed!");
}
2.10
#include
12、
}
}
printf("\n\n\n");
}
2.11
#include
13、 {
if(i%a==0&&i%b==0)
{
printf("\nThe min=%d",i);
break;
}
}
2.12
#include
14、2.13
main()
{
long i,t=1;
long sum=0;
for(i=1;i<=10;i++)
{
t*=i;
sum+=t;
printf("%ld!=%ld\n",i,t);
}
printf("sum:%ld\n",sum);
}
2.14
#include
15、d",x);
}
2.15
#include
16、t a,n,i;
printf("please input a n:");
scanf("%d%d",&a,&n);
for(i=0;i
17、) break; }while(1); switch(k) { case 0:printf("Sunday.\n");break; case 1:printf("Monday.\n");break; case 2:printf("Tuesday.\n");break; case 3:printf("Wednesday.\n");break; case 4:printf("Thursday.\n");break; case 5:printf("Friday.\n");b
18、reak;
case 6:printf("Saturday.\n");break;
}
}
2.18
#include
19、m);
}
2.19
#include
20、0no 1 a=1no 1 a=0 2. a=0 b=0 c=0 a=1 b=0 c=0 a=2 b=0 c=0 3. main:x=5,y=1,n=1 func:x=6,y=21,n=11 main:x=5,y=1,n=11 func:x=8,y=31,n=21 第五章 1.D 2.D 3.C 4.6 5.CDABC 6.(1)j+=2 (2)a[i]='0'
21、s[i]<='9'
12. (1)'\0' (2)str1[i]-str2[i]
5.1
#include
22、}
void main()
{
fun();
}
5.2
#include
23、if((Input<0)||(Input>70)==1)
goto Loop1;
for(i=0; i<10; i++ )
{
if(Input 24、nclude "stdio.h"
#include "stdlib.h"
main()
{
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
int a[3];
int i;
for(;;)
{
for (i=0;i<3;i++)
{
a[i]=rand()%3;
}
while((a[0]!=a[1]) && (a[0]!=a[2]) && (a[1]!=a[2]))/*get three different numbers 0,1,2*/
{
a1=a[0]+1;/*divide 1~9 into t 25、hree groups,a1~a3,a4~a6,a7~a9*/
a2=a[1]+1;
a3=a[2]+1;
a4=a1+3;
a5=a2+3;
a6=a3+3;
a7=a1+6;
a8=a2+6;
a9=a3+6;
/* make sure that each line and each row is made up with three members in different group.*/
/* such as: a9 a1 a5
a2 a6 a7
26、 a4 a8 a3 */
if(((a1+a5+a9) == (a2+a6+a7)) && ((a1+a5+a9) == (a3+a4+a8))
&& ((a1+a6+a8) == (a5+a7+a3)) && ((a1+a5+a9) == (a2+a4+a9)))
{
printf("%d %d %d\n%d %d %d\n%d %d %d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3);
return;
}
}
}
}
5.4
#include 27、ain(void)
{
char input1[100],input2[100],input3[100];
int i,Eng=0,eng=0,num=0,blank=0,other=0;
printf("Input 3 rows of character,each row don't exceed 80 characters:\n");
gets(input1);
printf("The second row:\n");
gets(input2);
printf("The third row:\n");
28、gets(input3);
/*test the first row*/
for(i=0; i<100; i++)
{
if(input1[i]=='\0')
goto Loop1;
else if(('A'<=input1[i])&&(input1[i]<='Z')==1)
Eng++;
else if(('a'<=input1[i])&&(input1[i]<='z')==1)
eng++;
else if(('0'<=input1[i])&&(input1 29、[i]<='9')==1)
num++;
else if(input1[i]==32)
blank++;
else other++;
}
/*test the second row*/
Loop1: for(i=0; i<100; i++)
{
if(input2[i]=='\0')
goto Loop2;
else if(('A'<=input2[i])&&(input2[i]<='Z')==1)
Eng++;
else i 30、f(('a'<=input2[i])&&(input2[i]<='z')==1)
eng++;
else if(('0'<=input2[i])&&(input2[i]<='9')==1)
num++;
else if(input2[i]==32)
blank++;
else other++;
}
/*test the third row*/
Loop2: for(i=0; i<100; i++)
{
if(input3[i]=='\0')
31、 goto Loop3;
else if(('A'<=input3[i])&&(input3[i]<='Z')==1)
Eng++;
else if(('a'<=input3[i])&&(input3[i]<='z')==1)
eng++;
else if(('0'<=input3[i])&&(input3[i]<='9')==1)
num++;
else if(input3[i]==32)
blank++;
else other++;
32、
}
Loop3: printf("Upper english character:%d\nLower english character:%d\nNumber:%d\nBlank:%d\nOther characters:%d\n",Eng,eng,num,blank,other);
}
5.5
#include 33、ring\n str1=");
gets(str1);
printf("Please input the second string\n str2=");
gets(str2);
/*Get the end of str1*/
for(i=0; i<80; i++)
{
if(str1[i]=='\0')
break;
}
/*Copy str2 to str1*/
for(j=i,k=0; str2[k]!='\0';k++,j++)
str1[j]=str2[k];
str1[i+k]='\0' 34、
puts(str1);
}
5.6
#include 35、[i].name);
/*sorting*/
for(i=0; i<5; i++)
for(j=0; j<4-i; j++)
if(stu[j].score>stu[j+1].score)
{stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;}
printf("After sotred,score and name:\n");
for(i=0; i<5; i++)
printf("%d,%s\n",stu[i].score,stu[i].name);
}
5.7
#include 36、o.h>
main()
{ int a[3][3],i,j,m,n,o,p;
printf("Please input a 3*3 shuzu:\n");
for (i=0;i<=2;i++)
for (j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for (i=0;i<=2;i++)
{ m=(a[i][0]>a[i][1])? a[i][0]:a[i][1];
n=(m>a[i 37、][2])? m: a[i][2];
}
for (j=0;j<=2;j++)
{ o=(a[0][j] 38、rintf("There is no andian.\\n");
}
5.8
#include 39、
for(i=0; i<4; i++)
{
for(j=0; j<3; j++)
b[j][i]=a[i][j];
}
printf("\n");
for(i=0; i<3; i++)
{
printf("\n");
for(j=0; j<4; j++)
printf("%5d ",b[i][j]);
}
}
5.9
#include 40、int i,j=0,m=0,n=0;
gets(str);
while(str[j]!='\0') j++;
for(i=j-1;i>=0;i--)
{
m=(str[i]-'0')*(pow(8,j-i-1));
n+=m;
}
printf("shijinzhi %d",n);
}
5.10#include 41、ease input a row character:\n");
gets(input1);
/*test the first row*/
for(i=0; i<100; i++)
{
if(input1[i]=='\0')
goto Loop;
else if(('A'<=input1[i])&&(input1[i]<='Z')==1)
num++;
else if(('a'<=input1[i])&&(input1[i]<='z')==1)
num++;
els 42、e if (input1[i]==32)
blank++;
}
Loop: printf("Character:%d\nBlank:%d\n",num,blank);
}
第六章
一、 选择题
1.D :p中统计是a地址,*p访问地址a值
2.D :指针数组
3.D:指针能够进行是否相等判定,空指针能够进行指针变量初始化,指针能够偏移;
4.C:
5.C、D:a[5]不存在,若*&a[4]则正确;C,D正确;
6.D:
7.B:
8.B:
二、 填空题
1.*(p+3) 2 22
2. cdefg
bcdefg
abcdef 43、g
7
3. 6385
三、 程序分析题
1.p = s[0] ; 错误,应改为:p = s; 或 p = &s[0];
2.int x , *p;错误,应改为:double x, *p;
3.*p = x ;错误,应改为:p = &x ;
4. 申明次序错误;应该改为:
void main(void)
{
int a;
int *p = &a;
a = 10;
printf(“%d\n”,*p);
}
2.3 #include 44、][5] = {"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i] = ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s = 10*s + p[i][j] - '0';
printf("%d\n",s);
}
4.1
#include 45、
char *p1,*p2;
printf("please enter string 1:");
gets(str1);
printf("please enter string 2:");
gets(str2);
printf("str1:%s\n",str1);
printf("str2:%s\n",str2);
p1 = str1;
p2 = str2;
while(*p1!='\0'&&*p2!='\0')
{
if(*p1++==*p2++)
count++;
}
printf( 46、"count:%d\n",count);
}
4.2
#include 47、
}
if(k!=i)
{
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
for(i=0;i<3;i++)
printf("%d\t",a[i]);
printf("\n");
}
4.3
#include 48、string1:");
gets(s1);
p = s1;
printf("enter m:");
scanf("%d",&m);
strcpy(s2,p+m);
printf("string2:%s\n",s2);
}
4.4
#include 49、t i;
p = s;
/*
printf("please enter a string:");
gets(p);
*/
printf("sssss:%s\n",s);
while(*p!='\0')
{
i=0;
while(*p>='0'&&*p<='9')
{
data[count][i] = *p;
i++;
p++;
}
if(i!=0)
count++;
p++;
}
printf("count:% 50、d\n",count);
for(i=0;i






