历届C语言考试的选择题2.doc
文本预览下载声明
2 语句 k=(m=5,n=++m); 运行之后,变量k、m、n的值依次为( )
A 5,5,6 B 6,6,5 C 5,6,5 D 6,6,5 应为6,6,6
D一个字符
7以下程序段运行后变量k的值为(C)。
int a=3,b=2;
int k;
k=(--a==b++)?a:b+1;
A 1 B 3 C 2 D 0
9. (D)是合法的数组定义。
A int a[ ]=string; B int a[5]={0,1,2,3,4,5};
C char str[ ]=‘string’; D char str[ ]={48,49,50,51,52,53};
14 下面程序的运行结果是( B)。
main( )
{ int a,b;
int *p1=a,*p2=b,*t;
a=10; b=20;
t=p1; p1=p2; p2=t;
printf(%d,%d\n,a,b);
}
A 20,10 B 10,20 C 10,10 D 20,20
15 若有以下定义:
struct node
{ int data;
struct node *next;
} *p,*q;
已建立如下图所示的链表:
┌──┬──┐ ┌──┬──┐
... p →│data│next┼→│data│NULL│
└──┴──┘ └──┴──┘
┌──┬──┐
q →│data│next│
└──┴──┘
不能将指针q所指结点连到上图所示链表末尾的语句是(D)。
A p=p-next; p-next=q; q-next=NULL;
B p=p-next; q-next=p-next; p-next=q;
C q-next=NULL; p=p-next; p-next=q;
D q-next=p-next; p=p-next; p-next=q;
16 设有如下定义:
typedef int *INTEGER;
INTEGER p,*q;
下列叙述正确的是(B)。
A 不能用INTEGER来定义变量
B p是基类型为int的指针变量
C p是int型变量,q是基类型为int的指针变量
D 程序中可用INTEGER代替int类型名
17 下面程序的运行结果是(B)。
#include stdio.h
main()
{ FILE *fp;
int a=2,b=4,c=6,k,n;
fp=fopen(test.dat,w);
fprintf(fp,%d\n,a);
fprintf(fp,%d %d\n,b,c);
fclose(fp);
fp=fopen(test.dat,r);
fscanf(fp,%d%*d%d,k,n);
printf(%d %d\n,k,n);
fclose(fp);
}
A 2 4 B 2 6 C 4 2 D 6 2
28 以下程序运行后输出结果是(C)。
#include stdio.h
int fun(int a, int b)
{
return(a-b);
}
main()
{
int x=5,y=3,k;
k=fun(x,y);
printf(%d-%d=%d\n,x,y,k);
}
A 0 B x-y=2 C 5-3=2 D 2
39 以下程序的功能是(C)。
#include stdio.h
main()
{ FILE *fp;
long int n;
fp=fopen(exam.txt,rb);
fseek(fp,0,SEEK_END);
n=ftell(fp);
fclose(fp);
printf(%ld,n);
}
A 将文件指针从地址为0处移动到文件末尾
B 计算文件指针的当前地址
C计算文件exam.txt的字节数
D计算文件exam.txt的终止地址
50 以下程序段运行后,表达式*(p+4)的值为(B)。
char a[]=china;
char *p;
p=a;
A 存放n的地址 B a
C n D 存放a的地址
51以下程序段运行后变量ans的值为( A )。
int a[]={1,2,3},b[]={3,2,1};
int *p=a,*q=b;
int k,ans=0;
for(k=0;k3;k++)
if(*(p+k)==*(q
显示全部