C语言作业下半部分

B11、表达式strlen("hello")的值是______。
A.4 B.5 C.6 D.7
12、若二维数组a有m列,则在a[i][j]之前的元素个数为______。
A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1
13、下列程序段的输出结果是______。
#define f(a,b,x) a*x+b
printf("%d,%d\n",f(3,2,1),f(6,5,f(3,2,1)));
A.5,23 B.5,13 C.5,25 D.6,-11
14、下列程序段的输出结果是______。
int c[]={1,3,5}
int *k=c+1;
printf("%d",*++k);
A.3 B.5 C.4 D.6
C15、已知int a,*p=&a;,则为了得到变量a的值,下列错误的表达式是______。
A.*&p B.*p C.p[0] D.*&a

D16、下列程序段的输出结果是______。
#include <stdio.h>
int main()
{char *a[]={"abcd","ef","gh","ijk"};
int i;
for(i=0;i<4;i++)
printf("%c",*a[i]);
return 0;
}
A.aegi B.dfhk C.abcd D.abcdefghijk
17、以下正确的描述是______。
A.对共用体初始化时,只能用第一个成员类型的值进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员。
B.结构体可以比较,但不能将结构体类型作为函数返回值类型。
C.函数定义可以嵌套。
D.关键字typedef用于定义一种新的数据类型。
18、有以下程序段:
struct st{
int x;
int *y;
}*pt
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是______。
A.*pt->y B.pt->x C.++pt->x D.(pt++)->x
D19、设有以下语句:
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为______。
A.6 B.7 C.8 D.9
20、设fp为指向某二进制文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值为______。
A.EOF B.非0值 C.0 D.NULL

11、表达式strlen("hello")的值是_B_。
A.4 B.5 C.6 D.7
12、若二维数组a有m列,则在a[i][j]之前的元素个数为_B___。
A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1
13、下列程序段的输出结果是_C_。
#define f(a,b,x) a*x+b
printf("%d,%d\n",f(3,2,1),f(6,5,f(3,2,1)));
A.5,23 B.5,13 C.5,25 D.6,-11
14、下列程序段的输出结果是__B_。
int c[]={1,3,5}
int *k=c+1;
printf("%d",*++k);
A.3 B.5 C.4 D.6
C15、已知int a,*p=&a;,则为了得到变量a的值,下列错误的表达式是_A___。
A.*&p B.*p C.p[0] D.*&a

D16、下列程序段的输出结果是__A__。
#include <stdio.h>
int main()
{char *a[]={"abcd","ef","gh","ijk"};
int i;
for(i=0;i<4;i++)
printf("%c",*a[i]);
return 0;
}
A.aegi B.dfhk C.abcd D.abcdefghijk
17、以下正确的描述是__C__。
A.对共用体初始化时,只能用第一个成员类型的值进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员。
B.结构体可以比较,但不能将结构体类型作为函数返回值类型。
C.函数定义可以嵌套。
D.关键字typedef用于定义一种新的数据类型。
18、有以下程序段:
struct st{
int x;
int *y;
}*pt
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是__C__。
A.*pt->y B.pt->x C.++pt->x D.(pt++)->x
D19、设有以下语句:
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为__D__。
A.6 B.7 C.8 D.9
20、设fp为指向某二进制文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值为_B__。
A.EOF B.非0值 C.0 D.NULL
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-20
建议你要自己动手哦,给你推荐个学习网站上边有各种c语言的学习资料而且还是免费的,你搜索“快动网”就找到了
第2个回答  2011-04-19
建议你要自己动手哦,给你推荐个学习网站上边有各种c语言的学习资料而且还是免费的,你搜索“快动网”就找到了
第3个回答  2011-04-20
io.h>
void main()
{
int a,b;
for(a=1;a<=4;a++)
{
for(b=1;b<=2*a-1;b++)
printf("*");
printf("\n");
}
for(a=1;a<=3;a++)
{
for(b=1;b<=7-2*a;b++)
printf("*");
printf("\n");
}
}
第二中方法
#include<stdio.h>
void main()
{
int a,b;
for(a=1;a<=7;a+=2)
{
for(b=1;b<=a;b++)
printf("*");
printf("\n");
}
for(a=5;a>=1;a-=2)
{
for(b=1;b<=a;b++)
printf("*");
printf("\n");
}
}
第三种 随便输入菱形的右半
#include<stdio.h>
void main()
{
int a,b,c;
printf("输入一个奇数:");
scanf("%d",&b);
if(b%2==0)
printf("输入的不是奇数!");
else
{
for(a=1;a<=b;a+=2)
{
for(c=1;c<=a;c++)
printf("*");
printf("\n");
}
for(a=b-2;a>=1;a-=2)
{
for(c=1;c<=a;c++)
printf("*");
printf("\n");
}
}
}
第四种 随便输入菱形
#include<stdio.h>
void main()
{
int a,b,c,d;
scanf("%d",&b); //输入中轴线上要显示*号的个数

if(b%2==0) //如果输入的数字是偶数,则无法输出菱形,因此程序应提示错误。
printf("\n错\n");

else
{ for(a=1;a<=b;a+=2) //输出包括中线的上半部分*号
{
for(c=1;c<=(b-a)/2;c++)
printf(" ");
for(d=1;d<=a;d++)
printf("*");
printf("\n");
}
for(a=b-2;a>=1;a=a-2) //输出不包括中线的下半部分*号
{
for(c=1;c<=(b-a)/2;c++)
printf(" ");
for(d=1;d<=a;d++)
printf("*");
printf("\n");
}
}
}
全都写了啊!
另外,团IDC网上有许多产品团购,便宜有口碑