A.y=x/(10*(n-1))
B.y=x%(10*(n-1))
C.y=x%(long)pow(10,n-1)
D.y=x%(10^(n-1))
50.已知有声明“intx,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是()。
A.if(x>=0)y=1;elsey=-1;
B.y=x>=0?
1:
01;
C.switch()
{ casex>=0:
y=1;break;
default:
y=-1;
}
D.switch(x-abs(x))
{case0:
y=1;break;
default:
y=-1;
}
51、已知有声明“intm[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是()。
A.m[++i]
B.m[5]
C.m[2*2]=0
D.m[m[4]]
52、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()。
A.实参和其对应的形参占用同一存储单元
B.形参不占用存储单元
C.同名的实参和形参占用同一存储单元
D.形参和实参占用不同的存储单元
53.C语言规定,在一个源程序中main函数的位置()。
A.必须在最开始
B.必须在最后
C.必须在预处理命令的后面
D.可以在其他函数之前或之后
54、已知有声明“inta=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值是()。
A.0
B.3
C.3.5
D.4
55、已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。
若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是()。
A.c=tolower(c)
B.c=c+32
C.c=c-‘A’+’a’
D.c=(c+’A’)%26-‘a’
56.已知有定义和声明:
structstudent
{intno;
charname[20];
struct{intyear,month,day;}birth;
}s;
若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实现这一功能的程序段是()。
A.year=1989;month=11;day=12;
B.s.year=1989;s.month=11;s.day=12;
C.birth.year=1989;birth.month=11;birth.day=12;
D.s.birth.year=1989;s.birth.month=11;s.birth.day=12;
57、执行以下程序后的结果是()。
#include
voidmain()
{intx=3;
Do
{
printf("%d\t",x=x-3);
}while(!
x);
}
A.输出一个数:
0
B.输出一个数:
3
C.输出两个数:
0和-3
D.无限循环,反复输出数
58.设有声明“inta=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是()。
A.if(a>b)c=a,a=b,b=c;
B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;
D.if(a>b){c=a;a=b;b=c;}
59、以下关于if语句和switch语句的叙述中错误的是()。
A.if语句和switch语句都可以实现算法的选择结构
B.if语句和switch语句都能实现多路(两路以上)选择
C.if语句可以嵌套使用
D.switch语句不能嵌套使用
60.若有声明语句“chars1[10]={0},s2[10]="books";”,则能将字符串"books"赋给数组s1保存的表达式是()。
A.s1="books";B.strcpy(s2,s1);
C.s1=s2;D.strcat(sl,s2);
61.已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用一次fopen函数,已有声明语句“FILE*fp;”,则fopen函数的正确调用形式是()。
A.fp=fopen("a:
\\data.dat","r+");
B.fp=fopen("a:
\\data.dat","w+");
C.fp=fopen("a:
\\data.dat","a+");
D.fp=fopen("a:
\\data.dat","w");
62.数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是()。
A.数组占用一块连续的存储区域,链表可能占用若干块不连续的存储区域
B.数组和链表所占用的存储区域均不能在程序运行期间动态地分配
C.数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取
D.数组的长度是固定的,链表的长度是不固定的
63.设有定义和声明语句:
typedefstructdtype
{inta;
structdtype*b;
}node;
staticnodex[3]={5,&x[1],7,&x[2],9,’\0’},*prt=&x[0];
下列选项中,表达式值不为5的是()。
A.x[1].b->a-2
B.Ptr->b->a-2
C.(ptr+1)->a-2
D.ptr->a
64.在以下程序中,需要在main函数之后定义一个函数,以下选项中()可以用做该函数的名字。
#defineP3.14
inty;
main()
{inta=1;
函数名(a);
…/*若干执行语句*/
}
int函数名(intx)
{returnx*x;}
A.mainB.yC.PD.print
65.已知有语句“FILE*fp;intx=123;fp=fopen("out.dat","w");”,如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是()。
A.fprintf("%d",x);B.fprintf(fp,"%d",x);
C.fprinff("%d",x,fp);D.fprintf("out.dat","%d",x);
66.已知有声明语句“chars1[10]="12345",s2[10]="abcde",s3[10];”,以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是()。
A.s3=s1,s1=s2,s2=s3;
B.s3[0]=s1[0],s1[0]=s2[0],s2[0]=s3[0];
C.strcpy(s3[0],s1[0]),strcpy(s1[0],s2[0]),strcpy(s2[0],s3[0]);
D.strcpy(s3,s1),strcpy(sl,s2),strcpy(s2,s3);
67.在定义任何一个函数时,下列选项中()是不可缺少的。
A.函数名之前的数据类型B.函