若有以下定义和语句:
struct st
{ int n;
struct st * next ;
};
struct st a[3], *p;
a[0].n=5 ; a[0].next=&a[1] ; a[1].n=7 ; a[1].next=&a[2] ; a[2].n=9 ; a[2].next='\0' ; p=&a[0];
则以下值为6的表达式是( D )
p++ -> n B)p-> n++ C)++(*p).n D)++p -> n
有以下程序:
#include<stdio.h>
main()
{ union {short i[2];
long k;
char c[4];
}r, *s = &r;
s->i[0] = 0x39 ; s->i[1] = 0x38;
printf("%x\n", s ->c[0]);
}
已知字符0的ASCII码值的十进制数是48,且数组的第0个元素在低位。以上程序的运行结果是( A )
A)39 B)9 C)38 D)8
有以下程序(若long型和int型数据均占4个字节):
#include<stdio.h>
typedef union {long x[2];int y[4];char z[8];}MYTYPE;
MYTYPE them;
main()
{ printf("%d\n",sizeof(them));}
程序的运行结果是( B )
A)32 B)16 C)8 D)24
设有以下定义和语句
struct STD
{ char name[10];
int age; int sex;
} s[5],*ps;
ps = &s[0];
下面scanf函数调用语句中对结构体变量成员引用错误的是( D )
A)scanf("%s",s[0].name); B)scanf("%d",&s[0].age); C)scanf("%d",&(ps -> sex)); D)scanf("%d",ps -> age);
设变量已定义,以下不能统计出一行中输入字符个数(不含回车符)的程序段是( C )
A)n=0;while ((ch=getchar())!=‘\n’)n++;
B)n=0;while (getchar()!=‘\n’)n++;
C)for(n=0;getchar()!=‘\n’;n++);
D)n=0;for(ch=getchar();ch!=‘\n’;n++);
有以下程序:
#include<stdio.h>
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{ struct ord *p=dt;
printf("%d,",++p->x);printf("%d\n",++p->y);
}
程序的运行结果是( D )
A)1,2 B)2,3 C)3,4 D)4,1
以下正确的字符串常量是( D )
A)"\\\" B)‘abc’ C)OlympicGames D)""
若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是( C )
A)p=a; B)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;
有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=”acc”,aa[10]=”bbxxyy”;
fun(ss,aa);
printf(“%s,%s\n”,ss,aa);
}
程序运行结果是( D )
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
以下定义语句中正确的是 ( D )
A)int a=b=0 ; B)char A=65+1,b='b';
C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;
若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是 ( B )
A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7
以下错误的定义语句是 ( C )
A)int x[][3]={{0},{1},{1,2,3}};
B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D)int x[][3]={1,2,3,4};
有以下程序
#include <stdio.h>
#include <string.h>
void fun(char *s[ ],int n)
{ char *t; int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{char *ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);
}
程序的运行结果是 ( C )
A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc
括号里都是给的答案~ 不知道为什么,帮忙讲解一下~
那个...,忘了分题号了,很抱歉...~
我估计答案应该有问题...