(27) 语句:printf("%d \n",12 &012);的输出结果是
A) 12 B) 8 C) 6 D) 012
(28) 能正确表示a和b同时为正或同时为负的逻辑表达式是
A) (a>=0‖b>=0)&&(a<0‖b<0)
B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0)
D) a*b>0
(29) 以下程序的输出结果是
A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0
main( )
{ int n=4;
while(n--)printf("%d ",--n);
}
(30) 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不
能表示a[1] 地址的表达式是
A) p+1 B) a+1 C) a++ D) ++p
(31) 以下程序的输出结果是
A) 17,021,0x11 B) 17,17,17
B) 17,0x11,021 D) 17,21,11
main( )
{ int k=17;
printf("%d,%o,%x \n",k,k,k);
}
(32) 以下程序的输出结果是
A) -1 1 B) 0 1 C) 1 0 D) 0 0
main( )
{ int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
(33) 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A) *p=&a; scanf("%ld",p);
B) p=(long *)malloc(8); scanf("%ld",p);
C) scanf("%ld",p=&a);
D) scanf("%ld",&a);
(34) 以下选项中,能定义s为合法的结构体变量的是
A) typedef struct abc B) struct
{ double a; { double a;
char b[10]; char b[10];
} s; } s;
C) struct ABC D) typedef ABC
{ double a; { double a;
char b[10]; char b[10];
} }
ABC s; ABC s;
(35) 若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是
A) t[2][0] B) t[2][2] C) t[l][2] D) t[2][l]
int t[3][3], *pt([3], k;
for (k=0;k<3;k++) pt[k]=&t[k][0];
(36) 下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是
A) p>a B) *p>a[0] C) *p>*a[0] D) *p[0]> *a[0]
main( )
{ int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i<10;i++,p++)
if(________) *a=*p;
printf("%d",*a);
}
(37) 以下程序的输出结果是
A) ihgfedcba B) abcdefghi C) abcdedeba D) ihgfefghi
#include
main( )
{ char *a="abcdefghi"; int k;
fun(a); puts(a);
}
fun(char *s)
{ int x,y; char c;
for(x=0,y=strlen(s)-1;x0) fun(k-1);
printf("%d",k);
}
(42) 以下程序的输出结果是
A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15
int d=1;
fun(int p)
{ static int d=5;
d+=p;
printf("%d ",d);
return(d);
}
main( )
{ int a=3; printf("%d \n",fun(a+fun(d))); }
(43) 以下程序的输出结果是
A) 123456780 B) 123 456 780 C) 12345678 D) 147
main( )
{ char ch[3][4]={"123","456","78"}, *p[3]; int i;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0;i<3;i++) printf("%s",p[i]);
}
(44) 以下程序的输出结果是
A) 1 B) 4 C) 7 D) 5
#include
int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main( )
{ p=(int*)malloc(sizeof(int));
f(p,a);
printf("%d \n",*p);
}
f(int *s, int p[][3])
{ *s=p[1][1]; }
(45) 以下程序的输出结果是
A) 9 B) 6 C) 36 D) 18
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a) / f(b);
printf("%d \n",c);
}
(46) 以下程序的输出结果是
A)4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8
main( )
{ char *s="12134211"; int v[4]={0,0,0,0},k,i;
for(k=0;s[k];k++)
{ switch(s[k])
{ case '1':i=0;
case '2':i=1;
case '3':i=2;
case '4':i=3;
}
v[i]++;
}
for(k=0;k<4;k++) printf("%d ",v[k]);
}
(47) 以下程序的输出结果是
A) AfghdEFG B) Abfhd C) Afghd D) Afgd
#include
main( )
{ char *p1,*p2,str[50]="ABCDEFG";
p1="abcd"; p2="efgh";
strcpy(str+1,p2+1); strcpy(str+3,p1+3);
printf("%s",str);
}
(48) 以下程序的输出结果是
A) #*#*# B) ##### C) ***** D) *#*#*
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
(49) 若有以下定义和语句:
double r=99, *p=&r;
*p=r;
则以下正确的叙述是
A) 以下两处的*p含义相同,都说明给指针变量p赋值
B) 在"double r=99, *p=&r;"中,把r的地址赋值给了p所指的存储单元
C) 语句"*p=r;"把变量r的值赋给指针变量p
D) 语句"*p=r;"取变量r的值放回r中
(50) 以下程序的输出结果是
A) 编译不通过,无输出 B) aceg
C) acegi D) abcdefghi
main( )
{ int i;
for(i='A';i<'I';i++,i++) printf("%c",i+32);
printf(" \n");
}
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分。
(1) DOS命令分为内部命令与外部命令,PATH命令是 【1】 命令。
(2) 设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C 在当前目录下的子目录W中。现已将A盘的当前目录改为\D\XY,当前盘改为C盘,假如需指定A盘上的该文件应写成 【2】 。
(3) 为了得到XCOPY命令的在线帮助,可使用的DOS命令文件一为 【3】 。
(4) 在DOS系统下,代表键盘与显示器的设备文件名为 【4】 。
(5) 在DOS系统下,可以直接执行的文件的扩展名除.FXE外,还有两个是 【5】 。
(6) 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【6】 。
int b,c; float a;
scanf("%f,%d,c=%d",&a,&b,&c);
.
.
.
(7) 下列程序的输出结果是 【7】 。
#include
main( )
{ char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s \n",b);
}
(8) 下列程序的输出结果是 【8】 。
int t(int x,int y,int cp,int dp)
{ cp=x*x+y*y;
dp=x*x-y*y;
}
main( )
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d %d n",c,d);
}
(9) 下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【9】 。
#include
main( )
{ char strl[]="How do you do", *p1=strl;
strcpy(strl+strlen(strl)/2,"es she");
printf("%s \n",pl);
}
(10) 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main( )
{ float x[1000], sum=0.0, ave, a;
int n=0, i;
printf("Enter mark:\n");scanf("%f",&a);
while(a>=0.0&& n<1000)
{ sum+ 【10】 ; x[n]= 【11】 ;
n++; scanf("%f",&a);
}
ave= 【12】 ;
printf("Output:\n");
printf("ave=%f\n",ave);
for (I=0;I
if 【13】 printf ("%f\n",x[I]);
}
(11) 有以下定义和语句,则sizeof(a)的值是 【14】 ,而sizeof(a.share)的值是 【15】
struct date{ int day;
int month;
int year;
union{int share1
float share2;
}share;
}a;
(12) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。
#include
main( )
{ FILE *fp;
char ch,fname[32]; int count=0;
printf("Input the filename :"); scanf("%s",fname);
if((fp=fopen( 【16】 ,"w+"))==NULL)
{ printf("Can't open file:%s \n",fname); exit(0);}
printf("Enter data:\n");
while((ch=getchar())!="#"){ fputc(ch,fp); count++;}
fprintf( 【17】 ,"\n%d\n", count);
fclose(fp);
}
(13) 以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。
struct node
{ char data;
struct node * next;
};
.
.
.
【18】 creatlist( )
{ struct node * h,* s,* r; char ch;
h=(struct node *)malloc(sizeof(struct node));
r=h;
ch=getchar( );
{ s=(struct node *)malloc(sizeof(struct node));
s->data= 【19】 ;
r->next=s; r=s;
ch=getchar( ); }
r->next= 【20】 ;
return h;
}
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |