浙江理工大学
C程序设计 试题(八)
窗体顶端
窗体底端
一、填空题(每空一分共20分)
1.十进制数 175 的八进制数和十六进制数分别是_____和____
2.而十进制数 -134 的八进制数和十六进制数分别是____和____
3.字符 '5' 和 'h' 的ASCII代码值分别为____和____
4.已知 char a[]="12345",b[]={'1','2','3','4','5'};则表达式sizeof(a)和sizeof(b)的值分别为____和____
5.已知 char a[]="ABCDEFGH" 则表达式strlen(a)值为____
6.循环语句for(k=1,c=0;k<8;k++)c++; 执行后c的值为____
循环语句for(k=8,c=0;k>0;--k)c++; 执行后c的值为____
循环语句k=1;c=0;while(k<=8){k++;c++;} 执行后c的值为____
循环语句k=8;c=0;do{k--;c++;} while(k>=0); 执行后c的值____
循环语句k=1;c=0;while(k<=8){k++;c++;} 执行后c的值为____
循环语句k=8;c=0;do{k--;c++;} while(k>=0); 执行后c的值____
7.已知char a[5],*p=a; 问a[1],a+1,*(p+1),p[1]之中与众不同的是____
8.已知int a=3,b=4,c=5; 则表达式a>b&&!c||1的值为____
9.已知int a=1,b=3,c=5; 则表达式a>=b>=c?a++:--b的值为____
10.sizeof是什么已知int j=5,m=2,k=7,n=4; 执行语句n+=m*=n=j%k;之后,n和m的值分别为____和____
11.已知int a=8,b=4,c=1; 则表达式a-b>c&&b!=c的值为____
12.已知int a=6,b=3,c=5; 则表达式b-a||b+c&&b-c的值为____
二、程序填空(每题4分共20分)
1.下面C程序的输出是: ____
main()
{ int m=8;
if(m--<8)printf("%d\n",++m);
else printf("%d\n",--m);
}
main()
{ int m=8;
if(m--<8)printf("%d\n",++m);
else printf("%d\n",--m);
}
2.下面C程序的输出是: ____
main()
{ int a=7,*p=&a;
*p=a+11+*p;
printf ("a=%d\n",a);
}
main()
{ int a=7,*p=&a;
*p=a+11+*p;
printf ("a=%d\n",a);
}
3.下面C程序的输出是: ____
void f(int n)
void f(int n)
{ printf("%3d",n%10);
if(n>0)f(n/10);
}
main()
{ f(12345);
}
if(n>0)f(n/10);
}
main()
{ f(12345);
}
4.十个数的选择排升序:
main()
{ int a[11],i,j,t;
printf("input 10 numbers : ");
for(____)
scanf(____);
for(i=____)
for(j=____)
if(a[j]____)
main()
{ int a[11],i,j,t;
printf("input 10 numbers : ");
for(____)
scanf(____);
for(i=____)
for(j=____)
if(a[j]____)
{ t=____;
____;
____;
}
printf("The sorted numbers :\n");
for(____)
printf(____);
printf(____);
}
____;
____;
}
printf("The sorted numbers :\n");
for(____)
printf(____);
printf(____);
}
5.如右图‘数字三角形’输出,请补上C程序:
main()
{ int i, j, k=1; 1
for (i=1; i<=9; i++) 2 3
{ for (j=1;____; j++) 4 5 6
printf(____); 7 8 9 10
main()
{ int i, j, k=1; 1
for (i=1; i<=9; i++) 2 3
{ for (j=1;____; j++) 4 5 6
printf(____); 7 8 9 10
printf("\n"); 11 12 13 14 15
} 16 17 18 19 20 21
} 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
} 16 17 18 19 20 21
} 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
三、选择题(每题一分共10分)
1.( ) 设有声明:
struct t{int x,y;}s[2]={1,2,3,4};
struct t *p=s,*q=s;
则表达式++p->x和表达式(++q)->x的值分别为
A、 1,1 B、 1,3 C、 2,3 D、 3,3
struct t{int x,y;}s[2]={1,2,3,4};
struct t *p=s,*q=s;
则表达式++p->x和表达式(++q)->x的值分别为
A、 1,1 B、 1,3 C、 2,3 D、 3,3
2.( ) 十进制数-27的八进制数和十六进制数为:
A、0177745 0X801B B、0100033 0X801B
A、0177745 0X801B B、0100033 0X801B
C、0100033 0XFFE5 D、0177745 0XFFE5
3.( ) 为了避免嵌套的条件语句if-else的二义性,C语言规定:
A、else与缩排位置相同的if配对 B、else与同一行上的if配对
C、else与其之后最近的if配对 D、else与其前最近的尚未配对的if配对
A、else与缩排位置相同的if配对 B、else与同一行上的if配对
C、else与其之后最近的if配对 D、else与其前最近的尚未配对的if配对
4.( ) 如 int k=11;则执行语句k=1/3*++k;后k取值为:
A、12 B、3 C、4 D、0
A、12 B、3 C、4 D、0
5.( ) 如果int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);,则值为9的表达式是:
A、p+=3,*p++ B、p+=4,*(p++) C、p+=4,*++p D、p+=4,++*p
A、p+=3,*p++ B、p+=4,*(p++) C、p+=4,*++p D、p+=4,++*p
6.( )设有指向同一个数组中不同元素的两个指针,则对它们不能执行的运算是:
A、+ B、- C、++ D、--
A、+ B、- C、++ D、--
7.( ) 能用作变量名字的标识符是:
A、 union B、double C、ab-1 D、a123_cd
A、 union B、double C、ab-1 D、a123_cd
8.( ) break语句
A、只能出现在if语句中 B、只能出现在循环体中
C、可用在循环体和switch语句中 D、可用在函数中的任何语句
A、只能出现在if语句中 B、只能出现在循环体中
C、可用在循环体和switch语句中 D、可用在函数中的任何语句
9.( ) 执行循环语句: for(x=y=0;y!=250||x<4;x++)y+=50;
其循环体执行的次数为:
A、 5 B、 4 C、3 D、2
其循环体执行的次数为:
A、 5 B、 4 C、3 D、2
10.( ) 如 int x=14; 下列求商y(需小数结果)的表达式哪一个不对?
A、y=x/(5+.0) B、y=x/5. C、y=1.*x/5 D、y=x/5*1.0
A、y=x/(5+.0) B、y=x/5. C、y=1.*x/5 D、y=x/5*1.0
四、改错,请将正确的语句和遗漏的语句写在本行的右边(每题5分共10分)
1.用Fibonacci数列前20个数,以四行五列显示。
main()
{ int i;
main()
{ int i;
int f[20]=(1,1); ____
for(i=1, i<=20,i++) ____
f[i]=f[i-2]+f[i-1];
for(i=1,i<=20,i++) ____
{ if(i/4=0) printf(\n); ____
printf("%12d",f[i]);
}
}
for(i=1, i<=20,i++) ____
f[i]=f[i-2]+f[i-1];
for(i=1,i<=20,i++) ____
{ if(i/4=0) printf(\n); ____
printf("%12d",f[i]);
}
}
2.判别并显示输入的整数是否为质数。
include <stdio.h> ____
main[] ____
{ int n;prime(int); ____
scanf('%d',n); ____
v=prime[n], ____
if v=1 then printf("%d is a prime!\n, n") ____
include <stdio.h> ____
main[] ____
{ int n;prime(int); ____
scanf('%d',n); ____
v=prime[n], ____
if v=1 then printf("%d is a prime!\n, n") ____
else printf("%d is not a prime!\n, n") ____
}
void prime(int p) ____
{ int k,v=1; ____
k==sqrt(p); ____
for(i=2,i<=k,i++) ____
if(p/i=0) v=0;break; ____
return v;
}
}
void prime(int p) ____
{ int k,v=1; ____
k==sqrt(p); ____
for(i=2,i<=k,i++) ____
if(p/i=0) v=0;break; ____
return v;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论