1.有以下結(jié)構(gòu)體說明和變量的定義,且如下圖所示指針p指向變量a,指針q指向變量b。則不能把結(jié)點b連接到結(jié)點a之后的語句是()
struct node
{char data;
struct noe*next;
}a,b,*p= &a,*q=&b;
A)a.next=q;
B)p.next= &b;
C)p- >next=&b;
D)(*p).next=q;
2.若有如下定義:
int(*p)(),*q();
則下列說法正確的是()
A)p是一個函數(shù)名,q是一個指針變量
B)p是一個指向整型變量的指針變量,q是一個指向一維數(shù)組的指針變量
C)p和q是等價的,都是指針變量
D)p是指向函數(shù)的指針變量,函數(shù)的返回值是整型數(shù)據(jù);q是帶回指針值的函數(shù)
3.有以下程序
# include
main()
{ float x,y;
scanf( "%f",&x);
if(x <0.0)y=0.0;
else if((x <5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x <10.0)y=1.0/x;
else y=10.0
printf( "%f\n",y);
}
若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結(jié)果是()
A)0.000000
B)0.250000
C)0.500000
D)1.000000
4.以下程序段中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是()
A)main ()
{int*p;
fun (p);
…
}
intfun (int*p)
{ int s;p= &s;}
B)main
{int*p;
fun ( &p);
…
}
intfun (int**p)
{ints;*p= &s;}
C)#include
main ()
{int*p;
fun ( &p);
…
}
intfun (int**p)
{*p=(int*)malloc (2); }
D)#include
main ()
{ int*p;
fun (p);
…
}
int fun (int*p)
{p=(int*)malloc(sizeof (int)); }
5.執(zhí)行下列程序時輸入:23 <空格>456<空格>789<回車>,輸出結(jié)果是()
main()
{ char s[100]
int c,i;
scanf( "%c",&c);
scanf( "%d",&i);
scanf( "%s",s);
printf( "%c,%d,%s\n",c,i,s);
}
A)1,456,789
B)1,23,456
C)1,23,456,789
D)23,456,789
6.有以下程序
#include
#include
main()
{ char b1[8]= "abcdefg",b2[8],*pb=b1+3;
while(--pb >b1)strcpy(b2,pb);
printf( "%d\n",strlen(b2));
}
程序運行后的輸出結(jié)果是()
A)8
B)3
C)1
D)6
7.設(shè)有如下定義和聲明:
structs
{ inta;
structs*next};
structsx[4]={1, &x[1],3,&x[2],5,&x[3],7,’\0’},*t;
t= &x[0];
則下列表達式值為2的是()
A)++t- >a
B)(*t).a++
C)t- >a++
D)t++- >a
8.若有如下程序:
main()
{int a=6; char ch=c;
printf( "%d\n",(a&2)&&(ch<′m′));}
則程序運行后的輸出結(jié)果是()
A)0
B)1
C)2
D)3
9.下列說法不正確的是()
A)下列結(jié)構(gòu)體定義時,占據(jù)了5個字節(jié)的空間
struct s {int num;
int age;
char sex;
}
B)結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C)對結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量
D)結(jié)構(gòu)體的成員可以是一個結(jié)構(gòu)體變量
10.若要打開A盤中user子目錄下名為aaa.txt的文本文件進行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是()
A)fopen( "A:\user\aaa.txt","r")
B)fopen( "A:\\user\\aaa.txt","r+")
C)fopen( "A:\user\aaa.txt","rb")
D)fopen( "A:\\user\\aaa.txt","w")
答案:1.B 2.D 3.C 4.C 5.B 6.D 7.A 8.A 9.A 10.B
struct node
{char data;
struct noe*next;
}a,b,*p= &a,*q=&b;
A)a.next=q;
B)p.next= &b;
C)p- >next=&b;
D)(*p).next=q;
2.若有如下定義:
int(*p)(),*q();
則下列說法正確的是()
A)p是一個函數(shù)名,q是一個指針變量
B)p是一個指向整型變量的指針變量,q是一個指向一維數(shù)組的指針變量
C)p和q是等價的,都是指針變量
D)p是指向函數(shù)的指針變量,函數(shù)的返回值是整型數(shù)據(jù);q是帶回指針值的函數(shù)
3.有以下程序
# include
main()
{ float x,y;
scanf( "%f",&x);
if(x <0.0)y=0.0;
else if((x <5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x <10.0)y=1.0/x;
else y=10.0
printf( "%f\n",y);
}
若運行時從鍵盤上輸入2.0
A)0.000000
B)0.250000
C)0.500000
D)1.000000
4.以下程序段中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是()
A)main ()
{int*p;
fun (p);
…
}
intfun (int*p)
{ int s;p= &s;}
B)main
{int*p;
fun ( &p);
…
}
intfun (int**p)
{ints;*p= &s;}
C)#include
main ()
{int*p;
fun ( &p);
…
}
intfun (int**p)
{*p=(int*)malloc (2); }
D)#include
main ()
{ int*p;
fun (p);
…
}
int fun (int*p)
{p=(int*)malloc(sizeof (int)); }
5.執(zhí)行下列程序時輸入:23 <空格>456<空格>789<回車>,輸出結(jié)果是()
main()
{ char s[100]
int c,i;
scanf( "%c",&c);
scanf( "%d",&i);
scanf( "%s",s);
printf( "%c,%d,%s\n",c,i,s);
}
A)1,456,789
B)1,23,456
C)1,23,456,789
D)23,456,789
6.有以下程序
#include
#include
main()
{ char b1[8]= "abcdefg",b2[8],*pb=b1+3;
while(--pb >b1)strcpy(b2,pb);
printf( "%d\n",strlen(b2));
}
程序運行后的輸出結(jié)果是()
A)8
B)3
C)1
D)6
7.設(shè)有如下定義和聲明:
structs
{ inta;
structs*next};
structsx[4]={1, &x[1],3,&x[2],5,&x[3],7,’\0’},*t;
t= &x[0];
則下列表達式值為2的是()
A)++t- >a
B)(*t).a++
C)t- >a++
D)t++- >a
8.若有如下程序:
main()
{int a=6; char ch=c;
printf( "%d\n",(a&2)&&(ch<′m′));}
則程序運行后的輸出結(jié)果是()
A)0
B)1
C)2
D)3
9.下列說法不正確的是()
A)下列結(jié)構(gòu)體定義時,占據(jù)了5個字節(jié)的空間
struct s {int num;
int age;
char sex;
}
B)結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C)對結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量
D)結(jié)構(gòu)體的成員可以是一個結(jié)構(gòu)體變量
10.若要打開A盤中user子目錄下名為aaa.txt的文本文件進行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是()
A)fopen( "A:\user\aaa.txt","r")
B)fopen( "A:\\user\\aaa.txt","r+")
C)fopen( "A:\user\aaa.txt","rb")
D)fopen( "A:\\user\\aaa.txt","w")
答案:1.B 2.D 3.C 4.C 5.B 6.D 7.A 8.A 9.A 10.B

