(C)一些题2
1.在 C 语言中(以 16位 PC 机为例),5种基本数据类型的存储空间长度的顺序为()
A . char < int < long int <=float < double
B . char = int < long int<=float <double
C . char < int < long int = float =double
D . char = int = long int <= float < double
2.已知学生记录描述为
struct student
{int no;
char name [20];
char sex;
struct
{ int year ;
int montg;
int day;} birth;
}; struct student s;
设变量 s 中的"生日"应是"1984年11月 ,下列对"生日"的正确赋值方式是
A .
year= 1984;
month =ll ;
day=11;
B.
birth . year =1984:
birth . month =11;
birth . day =11;
D.
s . birth . year =1984;
s . birth . month =I1;
s . birth . day =1l;
C.
s . year =1984;
S . month = Il ;
s . day = ll ;
3.当定义一个结构体变量时系统分配给它的内存是(
A .各成员所需内存量的总和
b .结构中第一个成员所需内存量
C .成员中占内存量最大者所需的容量
d .结构中最后一个成员所需内存量
4.在一个源文件中定义的全局变量的作用域为()。
A .本文件的全部范围
C .本函数的全部范围
B .从定义该变量开始至本文件结束
D .本程序的全部范围
5.程序段
int x =-1;
do
{ x = x * x ;
}(! x );
A .是死循环 B .循环执行2次 C .循环执行1次 D .不合法
6.如果 int * px ,* py :则可用( temp =* px :* px =* py :* py - temp )实现* px 和* py
的交换。其中 temp 应该说明为()。
A . int temp
B . int & temp
C . int ** temp
D . int * temp
答案:ADA BDA
5.少了while
7.当执行下面的程序时,如果输入 ABC ,则输出是
# include < stdio . h >
# include < string . h >
main {
char ss [10]="12345";
gets ( ss );
strcalt( ss ,"6789"):
printt ("% s ", ss );
}
答案:ABC6789 ABC覆盖了ss原有的
8.下面的函数 index ( char s [], char t [])是检查字符串 s 中是否包含字符串 t ,若包含,则返回 t 在 s 中的开始位置(下标值),否则返回﹣1。请填空。
# include < stdio . h >
index ( char s []. char t [])
int i , j . k ;
for ( i =0; s [ i ]!=\0'; i ++)
for ( j = i , k =0; ————————&& s [ j ]=t[ k ]; j ++,——————);
if(___________)
return i;
}
return -1;
}
答案:1.t[k]!='\0' 2.k++ 3.t[k]=='\0'
9. Π/4≈1-1/3+1/5-1/7+…公式求的近做值。直到某一项的绝对值小于1e-6为止
# inolude < stdio . h >
# include < math . h >
void main()
{ int s ; //正负号
float n ,t , pi ; //pi为和,t为项数,n为分母
t =1, pi =0; n =1.0; s =1;
while ( fabs ( t )>1e-6)
{pi = pi + t ;
n = n +2;
s =- S ;
t = s / n ;
}
pi = pi *4;
printf (" pi =%10.6f\ n ", pi );
10.写一个函数,使给定的一个4*4二维矩阵转置,即行列互换,要求在主函数里完成键盘输入和转置后的打印输出
# include < stdio . h >
void zz ( int a [4][4])
{
int t , i , j ;
for ( i =0;i <4;i++)
for ( j =0;j<i;j++)
t = a [ i ][ j];
a[i][j]=a[j][i];
a[j][i]=t;
}}
void main()
{
int b[4][4],i,j;
for(i=0;i<4;i++)
{
for (j=0; j<4; j++)
{
scanf("d", &b[i][j]) ;
printf("%3d",b[i][j]);
}
printf("\n");
zz(b)
for(i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
printf("%d\t", b[i][j]);
printf("\n");
}}