第3页
(45)有以下程序
point(char *p)
{
p+=3;
}
main()
{ char b[4]={'a','b','c','d'},*p=b;
point(p); printf("%c\n",*p);
}
程序运行后的输出结果是 A
A)a
B)b
C)c
D)d
(46)程序中若有如下的说明和定义语句
char fun(char *);
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下选项中对函数fun的正确调用语句是 A
A)(*f1)(a);
B)*f1(*s);
C)fun(&a);
D)ch=*f1(s)
(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct node
{
int data;
struct node *next;
} *p,*q,*r;
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 D
A)p->next=q->next;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;
(48)以下对结构体类型变量td的定义中,错误的是 C
A)typedef struct aa
{
int n;
float m;
}AA;
AA td;
B)struct aa
{
int n;
float m;
} td;
struct aa td;
C)struct
{
int n;
float m;
}aa;
struct aa td;
D)struct
{
int n;
float m;
}td;
(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 D
A)feof(fp)
B)ftell(fp)
C)fgetc(fp)
D)rewind(fp)
(50)有以下程序
#include "stdio.h"
void WriteStr(char *fn,char *str)
{
FILE *fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是 B
A)start
B)end
C)startend
D)endrt
待续……
今年4月2日C笔试试卷及答案,快来对答案(三)!!!!!!!
填空题(每空2分,共40分)
(1)某二*树中,度为2的结点有18个,则该二*树中有 19 个叶子结点。
(2)在面向对象的方法中,类的实例称为 对象 。
(3)诊断和改正程序中错误的工作通常称为 程序调试 。
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为 关系 。
(5)问题处理方案的正确而完整的描述称为 算法 .
(6)以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是 10 30 0 .
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
(7)以下程序运行后的输出结果是 81 .
#define S(x) 4*x*x+1
main()
{
int i=6,j=8;
printf("%d\n",S(i+j));
}
(8)以下程序运行后的输出结果是 4599
main()
{
int a=3,b=4,c=5,t=99;
if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
(9)以下程序运行后的输出结果是 10 20 0
main()
{
int a,b,c
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c);
}
(10)以下程序运行后的输出结果是0918273645
main()
{
char c1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是 1B
#include "stdio.h"
main()
{
char a,b;
a=getchar(); scanf("%d",&b);
a=a-'A'+'0';
b=b*2;
printf("%c %c\n",a,b);
}
(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值.请填空. br[i]
void fun(int, int, int (*)[4],int *)
main()
{
int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)
printf("%4d",b[i]);
printf("\n");
}
void fun(int m,int n,int ar[][4],int *br)
{
int i,j,x;
for(i=0;i<m;i++)
{ x=ar[i][0];
for(j=0;j<n;j++)
if(x<ar[i][j]) x=ar[i][j];
【12】 =x;
}
(13)以下程序运行后的输出结果是 4 3 3 4
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;
printf("%d %d ",x,y);
}
main()
{ int a=3,b=4;
swap(a,b);
printf("%d %d\n",a,b);
}
(14)以下程序运行后的输出结果是 abcfg
#include "string.h"
void fun(char *s,int p,int k)
{ int i;
for(i=p;i<k-1;i++)
s[i]=s[i+2];
}
main()
{ char s[]="abcdefg";
fun(s,3,strlen(s));
puts(s);
}
(15)以下程序运行后的输出结果是 abcbcc
#include "string.h"
main()
{
char ch[]="abc",x[3][4]; int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
(16)以下程序运行后的输出结果是 0 10 1 11 2 12
fun(int a)
{
int b=0;static int c=3;
b++; c++;
return (a+b+c);
}
main()
{
int i,a=5;
for(i=0;i<3;i++)
printf("%d %d ",i,fun(a));
printf("\n");
}
(17)以下程序运行后的输出结果是 13431
struct NODE
{ int k;
struct NODE *link;
};
main()
{
struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q)
{ p->k=++i; p++;
q->k=i++; q--;
}
q->k=i;
for(i=0;i<5;i++)
printf("%d",m[i].k);
printf("\n");
}
(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes
yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.
#include "string.h"
char *huiwen(char *str)
{
char *p1,*p2; int i,t=0;
p1=str; p2= ①
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--)
{ t=1; break; }
if( ②) return ("yes!");
else return ("no!");
}
main()
{
char str[50];
printf("Input:"); scanf("%s",str);
printf("%s\n", ③ );
}
①str+strlen(str)-1
②t==0或!t
③huiwen(str)
[完]