版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计学习通超星期末考试章节答案2024年一个C语言程序中要调用sqrt()函数时,应在程序中包含的头文件是_____。
答案:math.h/ananas/latex/p/643945
答案:
1.0/2*sin(sqrt(a*a+b*b)/fabs(c))
下列表达式中,______满足“当x为偶数时值为真,为奇数时值为假”的要求。
答案:x%2==0设有inta=1,b=2,c=3,d=4;,则表达式a>d?a+b:c+d值为______。
答案:7已知inta=15;,执行语句a=a<<2;后,变量a的值是_____。
答案:60设有float
a=100.25,b=2.5;,则表达式(int)a/b的值是______。
答案:40.0以下选项中关于C语言的叙述错误的是______。
答案:变量不能使用大写字母命名已知:inta=5,b=6,c=7,d=8,m=2,n=2;,则执行语句(m=a>b)&&(n=c>d);后,n的值_____。
答案:2设有inta=1,b=0;,则表达式a<2||++b的值是______。
答案:1已知数学关系式x≥y≥z,以下选项中能正确表示该关系式的C语言表达式是_____。
答案:
(x>=y)&&(y>=z)设有inta;,则不能正确表示数学不等式“10答案:10表达式:10!=9的值是______。
答案:1在C语言中______表示逻辑真。
答案:非0的数下列选项中,运算符的优先级排序正确的是______。
答案:
!、&&、||、+=以下选项中,和语句x*=y+2;等价的是_____。
答案:x=x*(y+2);设有inta;,则执行语句a=4+5,a-5;后,a的值是______。
答案:9设有inta=3;,执行语句a+=a-=a*a;后,变量a的值是______。
答案:-12设有inta,f=3;,则执行语句a=(f++)%3;后a的值是______。
答案:0设有定义int
b=0;,表达式______与其他表达式的值不同。
答案:b++已知intx=3,n=5;,则以下与其他三组输出不同的一组语句是______。
答案:
n=x++;printf("%d\n",n);设有intm,n=10;,则执行语句m=n++;后,m、n的值分别为______。
答案:10,11若定义:inti=3,j=4,k=5;,则表达式i*j+j/k-k%i的值是______。
答案:10设有定义:inti=3480;,下列选项中,取i的十位上的数字的表达式是______。
答案:i/10%10已知intx=10;floaty=20;doublez=30;,则表达式x+y+z的数据类型是______。
答案:doubleC语言中,运算对象必须是整型数值的运算符是______。
答案:%已知:inta=8,b=5,c;,则执行语句c=a%b+0.3;后,c的值是______。
答案:3设有inta;,执行语句a='A'+1.6;后,则正确的叙述是______。
答案:a的值是字符'A'的ASCII码值加上1C语言中字符型数据在内存中的存储形式是______。
答案:ASCII码若有定义:chara='\42';,则变量a_____。
答案:包含1个字符C源程序中不能表示的数制是______。
答案:二进制下列是合法的C语言常量的是______。
答案:2.5e2以下选项中可作为C语言整型常量的是______。
答案:0xabC语言中基本数据类型包括______。
答案:整型、实型、字符型C语言程序中main()函数可以写在_____。
答案:以上选项均正确以下选项中,能作为C语言标识符的是______。
答案:
_0_以下选项中不合法的C语言标识符是______。A.print
B.FOR
C._00
D.&&a
答案:&&a以下不能定义为用户标识符的是______。
答案:int有以下程序intmain(){inta=666,b=888;printf("%d\n",a,b);return0;}
答案:666以下程序段的输出结果是
。int
a=1234;printf("%2d\n",a);
答案:1234设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
。
答案:x=(int)(x*100+0.5)/100.0;以下叙述中错误的是
。
答案:空语句出现在任何位置都不会影响程序运行结构化程序设计所规定的三种基本控制结构是
。
答案:顺序、选择、循环以下叙述中正确的是
。
答案:用C程序实现的算法可以没有输入但必须要有输出以下语句:temp=x;x=y;y=temp;的功能是
。
答案:交换x,y若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是
。(□代表一个空格符)
答案:□2□3以下说法正确的是
。
答案:当输入数据时,必须指明变量的地址,如scanf("%f",&f);已知:inta,b;用语句scanf(“%d%d”,&a,&b”);输入a、b的值时,不能作为输入数据分隔符是
。
答案:,以下四个程序中,完全正确的是
。
答案:
#include
intmain()
{/*/programming/*/
printf("programming!\n");}已知:intx=10,y=3,z;则下列语句的输出结果是
。printf(“z=%d”,z=(x%y,x/y));
答案:z=3将变量x和y中的较小值赋值给z的正确语句是______。
答案:z=x;if(x>y)z=y;有定义intx=1,y=2,z=3;,执行下列程序段后,输出的结果是_______。if(x>y)z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);
答案:2,3,3设有变量a、b、c、d且都已正确定义并赋值。若有下列if语句:if(a答案:当a假定所有变量均已正确说明,下列程序段运行后x的值是
。
a=b=c=0;x=35;
if(!a)x--;
elseif(b);
if(c)x=3;
elsex=4;
答案:4下面的程序:
。intmain(){intx=3,y=0,z=0;if(x=y+z)printf("****");elseprintf("####");return0;}
答案:输出####有定义语句:inta=1,b=2,c=3,x;则以下选项中各程序段执行后,x的值不为3的是
。
答案:if(a<3)x=3;
if(a<2)x=2;
if(a<1)x=1;
以下4个选项中,不能看作一条语句的是
。
答案:if(b==0)m=1;n=2;下列条件语句中,功能与其他语句不同的是
。
答案:if(a==0)printf("%d\n",x);elseprintf("%d\n",y);当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
。
答案:!k%2==1若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句是
。
答案:switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;
case10:case11:y=a-b;break;
}在执行以下程序时,为使输出结果为t=4,则给a和b输入的值应满足的条件是
。intmain(){ints,t,a,b;scanf("%d,%d",&a,&b);
s=1;t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
elseif(a==b)t=5;
elset=2*s;printf("t=%d\n",t);return0;}
答案:0有如下程序:#includeintmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);return0;}
答案:
a=2,b=1有如下程序:
#includeintmain(){
inta=5,b=4,c=3,d=2;
if(a>b>c)
prinft(“%d\n”,d);
elseif((c-1>=d)==1)
printf(“%d\n”,d+1);
elseprintf(“%d\n”,d+2);
return0;}
答案:3与语句y=(x>0?1:x<0?-1:0);的功能相同的if语句是
。
答案:if(x>0)y=1;
elseif(x<0)y=-1;
elsey=0;
运行下面程序,输出结果是
。
#includeintmain(){intn=0,m=1,x=2;
if(!n)
x-=1;
if(m)
x-=2;
if(x)
x-=3;
printf(“%d\n”,x);
return0;}
答案:-4为了避免嵌套的if-else语句的二义性,C语言规定else总是与
组成配对关系。
答案:在其之前未配对的最近的ifif语句的控制条件是
。
答案:可以用任何表达式下列叙述中正确的是
。
答案:在switch语句中,不一定使用break语句以下程序的输出结果是
。charch;ints=0;for(ch=’A’;ch<’Z’;++ch)if(ch%2==0)s++;printf("%d",s);
答案:12以下循环结构的循环次数为_______。inti;for(i=0;i<10;i++)
i++;
答案:5以下程序的输出结果是_______。
#includeintmain(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=10)
break;if(b%3==1){b+=3;continue;}}printf("%d\n",a);return0;}
答案:4以下程序的输出结果是_______。
#include
intmain()
{
inty=10;
for(;y>0;y--)
if(y%3==0){printf("%d",--y);continue;}
return0;
}
答案:852若x是int型变量,以下程序段的输出结果是________。
for(x=3;x<6;x++)
printf((x%2)?("**%d"):("##%d\n"),x);
答案:
**3##4
**5
有如下程序
#includeintmain(){intx=3;do{printf("%d",x--);}while(!x);return0;}
答案:3以下叙述正确的是________。
答案:用do-while语句构成的循环,在while后的表达式为零时结束循环。下面程序的输出结果是________。
#includeintmain(){ints,k;for(s=1,k=2;k<5;k++)s+=k;printf("%d\n",s);return0;}
答案:10执行for(i=0;i<10;i++);结束后,i的值是________。
答案:10设有inty=3;执行下列循环语句后,变量y的值是_______。do++y;while(y++<4);
答案:5语句while(!e);中的条件!e等价于_______。lass=MsoNormal>
}
答案:e==0有程序如下#includeintmain(){inty=5;while(y--);printf("y=%d\n",y);return0;}程序执行后的输出结果是_______。
答案:y=-1以下程序段的输出结果是_______。intx=3;do{printf(“%3d”,x-=2);}while(!(--x));
答案:1-2执行下面的程序后,a的值为_______。intmain(){
inta,b;
for(a=1,b=1;a<=100;a++){
if(b>=20)break;if(b%3==1)
{
b+=3;continue;
}b-=5;}return0;
}
答案:8以下程序段的输出结果是_______。for(i=4;i<=10;i++){if(i%3==0)continue;printf(“%d”,i);}
答案:457810下面语句中不是死循环的是_______。
答案:inti=100;while(1){i=i%100+1;if(i==20)break;}执行下面程序段后,变量k的值为_______。for(k=0,m=1;m<4;m++){
for(n=1;n<5;n++)if(m*n%3==0)continue;
k++;}
答案:3下面叙述正确的是_______。
答案:不管哪种形式的循环语句,都可以从循环体内转到循环体外以下程序功能是:将从键盘输入的一个字符串逆序存放,然后输出该字符串。如:输入123456,输出654321,请填空。#include#includeintmain(){
chars[100],t;
inti,j,n;
______________;
n=strlen(s);
i=0;
j=__________;
while(i_____j)
{
t=s[i];s[i]=s[j];s[j]=t;
i++;
___________;
}
printf("%s\n",s);
return0;}
答案:gets(s;n-1;<;j—以下程序的功能是:输入10个数存放在一个数组中,输出其中最大值与最小值、10个数的和及它们的平均值,请填空。#includeintmain(){
int_______________;
intmax,min,sum=0;
inti;
floataverage;
for(i=0;i<10;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&array[i]);
}
max=array[0];
min=____________;
for(i=1;i<=_______;i++)
{
if(max答案:array[10];sum=array[0];9;max=array[i];min>array[i];sum+array[i]以下程序的功能是:将数组x中相邻两个元素的和存放到另一个数组a中,并输出,请填空。#includeintmain(){
intx[10],a[9],i;
for(i=0;i<10;i++)
scanf("%d",____________);
for(i=1;i<10;i++)
a[i-1]=x[i]+_____________;
for(i=0;i<9;i++)
printf("%d",____________);
putchar('\n');
return0;}
答案:&x[i];x[i-1];a[i]以下程序的功能是:输出数组s中最大元素的下标,请填空。#includeintmain(){
intk,p;
ints[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])_____________;
printf("%d\n",k);
return0;}
答案:k=p如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含
头文件。
答案:string.h判断字符串s1是否大于字符串s2,正确的表达式是
。
答案:strcmp(s1,s2)>0设有定义:chars1[]="abc",s2[]="mnop";,则执行语句strcpy(s2,s1);printf("%s",s2);后,输出的结果是
。
答案:abc已知:charb[20];,若要从键盘输入字符串"HelloWorld",则正确的输入语句是
。
答案:gets(b);已知charstr[6]={'a','b','\0','c','d','\0'};,则printf("%s",str)的输出结果是
。
答案:ab下列叙述中不正确的是
。
答案:可以对实型数组进行整体输入、输出
设有chararray[]="Welcome";,则数组array所占的存储单元是__________。
答案:8个字节下面能正确对字符串s进行初始化操作的是
。
答案:chars[]="CHINA";
下列对数组s的初始化,其中不正确的是
。
答案:chars[5]="abcdef";已知:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是
。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
答案:357设有定义:inta[3][3]={{1},{2}},b[3][3]={1,2};,则执行语句printf("%d",a[1][0]+b[1][0]);后,输出的结果是
。
答案:2已知:inta[3][2]={1,2,3,4,5,6};,则a[1][1]的值是
。
答案:4设有inta[8][6];,则在a[4][5]之前的元素个数为
。
答案:29在定义了数组a[3][6];后,第10个元素是
。
答案:a[3][1]在C语言中,二维数组元素在内存中的存放顺序是
。
答案:按行存放已知:int[3][4],则对数组元素引用正确的是
。
答案:a[1+1][0]已知inta[3][3];则
不属于a数组中的元素。
答案:a[3][3]以下对二维数组a的正确声明是
。
答案:doublea[1][4]若有inta[]={1,2,3,4,5,6,7};charc1='b',c2='2';,则下列表达式值不等于2的是
。
答案:c2-0已知inta[8]={2,5,4,7};,则表达式a[5]-a[2]的值是
。
答案:
-4在C语言中,引用数组元素时,其数组下标的数据类型允许是____。
答案:整型常量或整型表达式若有定义语句:intm[]={5,4,3,2,1},i=4;,则下面对m数组元素引用中错误的是
。
答案:m[m[0]]若有inta[3];,则对a数组元素非法引用的是
。
答案:a[3]合法的数组初始化语句是
。
答案:chara[]={0,1,2,3,4,5};对一维数组初始化正确的语句是
。
答案:inta[]={1,2,3,4,5};下列选项中,能正确定义数组的语句是
。
答案:defineN2008
intnum[N];设有预处理命令#defined2和定义inta=10;longb=20;charc='a';,则下列语句中错误的是
。
答案:d++设有#defineTap(x)x+1,则2*Tap(2)的值是
。
答案:5若有#defineMUL(x,y)x*y,则语句printf("s=%d",MUL(2,2+3));的输出结果是
。
答案:s=7下列关于编译预处理命令的说法中,正确的是
。
答案:一行只能书写一条编译预处理命令下面程序的输出结果是
。
#includeintm=5;
intfun(intx,inty)
{
intm=8;
return(x*y-m);
}
intmain()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
return0;}
答案:5凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
。
答案:自动(auto)一个源文件中定义的全局变量的作用域是
。
答案:从定义开始到本文件结束C程序函数中的局部变量是指
。
答案:函数体内定义的变量以下描述中错误的是
。
答案:在一个函数内部的复合语句中定义的变量可以在本函数范围内有效函数的形式参数的作用域是
。
答案:本函数的全部范围有以下程序:#includeintf(inta){returna*a;}intmain(){doublex;x=f(2.5);printf("%.2f\n",x);return0;}程序的输出结果是
。
答案:4.00下列的函数调用语句中fun函数的实参个数是
。fun(x,g(x,y),z=x+y,(x,y));
答案:4C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是
。
答案:单向值传递若函数调用时的实参为变量时,下列关于函数形参和实参的叙述中正确的是
。
答案:函数的形参和实参分别占用不同的存储单元在下面的函数声明中,存在着语法错误的是
。
答案:DC(int,int=5);以下函数声明语句正确的是
。
答案:doublefun(intx,inty);下列函数值的类型是
。fun(floatx){doubley;y=3*x-1;returny;}
答案:intC语言允许函数值类型缺省定义,此时该函数值隐含的类型是
。
答案:int型以下叙述中错误的是
。
答案:用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值以下关于C语言程序中函数的说法正确的是
。
答案:函数的定义不可以嵌套,但函数的调用可以嵌套。以下正确的函数定义形式是
。
答案:doublefun(intx,inty)
{doublez;
z=x+y;returnz;}
若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元,则应填入______。int*p;p=__________malloc(sizeof(int));
答案:(int*)若有函数:voidfun(doublea[],int*n){…},则以下叙述中正确的是_________。
答案:形参a和n都是指针变量对应下列main函数中的fun函数调用语句,以下给出的四个fun函数头中错误的是_____。intmain(){inta[10],n;fun(n,&a[9]);return0;}
答案:voidfun(intm,intx)若有声明:voidfun(int*x,intn,int*s);inta[]={1,2,3,4},b,c;,则以下函数调用形式中正确的是_______。
答案:fun(a,4,&b);有以下函数:#includeintf(char*s){
char*t=s;
while(*t++);
t--;returnt-s;}下列关于函数f功能的叙述中正确的是_________。
答案:求字符串的长度有以下程序:#includevoidf(intm,int*p,int*q){m=1;*p=2;q=p;}intmain(){inta=10,b=20,c=30;f(a,&b,&c);printf("%d,%d,%d\n",a,b,c);
return0;}其运行结果是_________。
答案:10,2,30设有说明:char*str[10];,则标识符str的意义是_________。
答案:str是一个有10个元素的数组,数组元素的数据类型是指向char型的指针型设有以下说明,请问标识符str的意义是_________。char(*str)[10];
答案:str是一个指向有10个char型元素的数组的指针下列不能输出字符串“Hello”的程序段是_________。
答案:chars[20],*t=s;t="Hello";printf("%s\n",s);设有定义charc[20]="1234567",*p=&c[3];则strlen(p)的值为_________。
答案:4指针s所指的字符串的长度为_________。char*s="\t\018Name\0Address\n"
答案:7下面各语句行中,能正确进行字符串操作的语句是_________。
答案:char*s;s="ABCDE";若有定义:chars[10]="include",*p=a;,则不能代表字符u的表达式是_________。
答案:s+4有以下程序:#includeintmain(){charc[]="uvwxyz",*p;p=c;printf("%c\n",*(p+5));
return0;}其运行结果是_________。
答案:z设有如下程序段:chars[20]="China",*p;p=s;则执行p=s;语句后,以下叙述正确的是_________。
答案:可以用*p表示s[0];设有charstr[]="Olympiv";,则表达式*(str+4)的值为_________。
答案:'p'已知:chars[10],*p=s;,以下选项中错误的语句是_________。
答案:s=p+5;有以下程序:#includeintmain(){
inta[]={1,2,3,4},y,*p=&a[3];
--p;
y=*p;printf("y=%d\n",y);return0;}其运行结果是_________。
答案:y=3若有定义:intw[3][5];,则下列不能正确表示该数组元素的表达式是_________。
答案:*(w+1)[4]若有说明:inta[4][5];,则对数组a的元素的非法引用是_________。
答案:a[0][5]已知inta[]={1,2,3,4,5,6},*p=a;,则值不等于2的表达式是_________。
答案:(*p)++设有:inta[]={1,3,5,7},*p=a;以下表达式中值为5的是_________。
答案:*(p+2)已知inta[5]={1,3,6,10,15},*p1=&a[1],*p2=&a[4];,则*p2-*p1的值是_________。
答案:12对于两个类型相同的指针变量,不能进行______运算。
答案:+已知有inta[5]={1,3,5,7,9},*p=&a[2];则表达式p[0]的值为_________。
答案:5设有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则p[5]的值是_________。
答案:6若有intx[10],*p=x;,则*(p+5)表示_________。
答案:数组元素a[5]的值设有定义inta=2,b=1,*p=&a;,则执行语句*p=3;a=a+b;后,变量a的值为_________。
答案:4已知:inta,b=7,*p=&a;,则与a=b;等价的语句是_________。
答案:*p=b;已知:int*p,a;则语句“p=&a;”中的运算符“&”的含义是_________。
答案:取变量地址有定义:floatx;,以下对指针变量p定义且赋初值的语句中正确的是_________。
答案:float*p=&x;设有定义inta,*p;,则使指针p指向变量a的语句是_________。
答案:p=&a;变量的指针,其含义是指变量的_________。
答案:地址设有:typedefstructstud{longNo;intage;charname[21];}STUDENT;,则下列叙述正确的是______。
答案:STUDENT是一个结构体类型名以下叙述中错误的是______。
答案:可以通过typedef增加新的类型以下对枚举类型名的定义中,正确的是______。
答案:enuma{a1,a2,a3};设有如下枚举类型定义:enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran};,枚举量Fortran的值为______。
答案:102设有:unionun{inti;charc;floatf;}a;intb;,则下列语句中正确的是______。
答案:a.c='A';若有以下定义语句uniondata{inti;charc1;floatf;}n;intj;,则以下语句正确的是______。
答案:printf("%d\n",n.i);共用体类型在任何给定时刻,______。
答案:只有一个成员驻留在内存中以下对C语言中共用体类型数据的叙述正确的是______。
答案:一个共用体变量中不能同时存放其所有成员当说明一个共用体变量时,系统分配给它的内存是______。
答案:成员中占内存量最大者所需内存量已知:union{charc;floata;}test;,则sizeof(test)的值是______。
答案:4有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是______。structnode{chardata;structnode*next;}a,b,*p=&a,*q=&b;
答案:p.next=&b;有以下程序段structst{intx;int*y;}*pt;
inta[]={1,2},b[]={3,4};
structstc[2]={10,a,20,b};
pt=c;以下选项中表达式的值为11的是______。
答案:++pt->x设有以下语句:structst{intn;charname[10];};structsta[3]={5,"li",7,"wang",9,"zhao"},*p;p=a;则以下表达式的值为6的是______。
答案:++p->n有如下定义:structdate{intyear,month,day;};structstudent{intmun;charname[20];charsex;structdatebirthday;charaddress[30];}stu1;对stu1的出生年份进行赋值时,正确的语句是______。
答案:stu1.birthday.year=1994已知:structst{intnum;charsex;floatscore;}stud,*p=&stud;,则对于结构体变量stud的成员num正确的引用是______。
答案:p->num以下结构体变量定义中不正确的是______。
答案:structexam{intx;inty;};stru;已知:structstudent{intnumber;charname[10];charsex;}s;,则以下叙述中正确的是______。
答案:s是结构体变量结构体变量在程序执行期间______。
答案:所有成员一直驻留在内存中在说明一个结构体变量时,系统分给它的存储空间是______。
答案:该结构体中所有成员所需存储空间的总和。以下程序运行后,文件t1.dat中的内容是________。#includevoidWriteStr(char*fn,char*str){FILE
*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}intmain(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");return0;}
答案:end以下叙述中错误的是________。
答案:语句“FILEfp;”定义了一个名为fp的文件指针函数调用语句fseek(fp,10L,1)的含义是________。
答案:将文件位置指针从当前位置向文件尾方向移动10个字节若要打开C盘上user子目录下名为readme.txt的文本文件进行读、写操作,则正确语句是________。
答案:fopen("C:\\user\\readme.txt","r+")判断二进制文件的结束方式是________。
答案:feof(fp)!=0下列语句中,不能将文件型指针fp指向的文件内部指针置于文件头的语句是________。(注:假定能正确打开文件)
答案:feof(fp)在C语言中,用w+方式打开一个文件后,可以执行的文件操作是________。
答案:可任意读写若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是________。
答案:非零值C语言中标准输出文件stdout是指________。
答案:显示器fgets(s,n,f)函数的功能是________。
答案:从文件f中读取长度不超过n-1的字符串存入指针s所指的内存十进制数123,转换为二进制数为
,转换为八进制数为
,转换为十六进制数为
。
答案:1111011;0173;173;0x7B;0X7B;7B为了提高程序的可读性,在编写C程序时通常使用()格式,并给程序添加必要的注释。注释可出现在程序的任何位置,注释对程序的执行
,C程序中一般块注释用
表示,行注释用
表示。
答案:缩进;没有影响;无影响;不影响;/*…*/;
/*
*/;//C语言源程序文件的后缀是
,经过编译后,生成文件的后缀是
,经过连接后,生成文件的后缀是
。
答案:.c;c;.obj;obj;.exe;exeC程序必须要有一个
函数,而且只能有一个。C语言程序总是从
函数开始执行,并且终止于该函数。
答案:main(;main(C程序是由函数构成的。其中有并且只能有
个主函数。一个函数由两部分组成:函数的首部和
。
答案:1;一;函数体将十进制浮点数转换为二进制浮点数:(52.625)10=(
)2
答案:110100.101将二进制数转换为十进制数:(110101)2=(
)10
答案:53二进制代码程序属于(
)。
答案:面向机器语言编译程序的功能是(
)。
答案:将C源程序编译成目标程序以下选项中,不合法的C语言常量是(
)。
答案:'no'以下选项中合法的C语言字符常量是(
)。
答案:'\x43'下列符号串中,属于C语言合法标识符的是(
)。
答案:_123对C语言的特点,下面描述不正确的是(
)。
答案:C语言的可移植性较差在一个C程序中下列说明正确的是(
)。
答案:main()函数可以在任何地方出现以下叙述不正确的是(
)。
答案:在C程序中,注释说明只能位于一条语句的后面一个C程序的执行是从(
)。
答案:本程序的main函数开始,到main函数结束表达式5.7+2/19=
。若定义“inta=4,b;”,则表达式“(b=6*5,a*4),a+16”的值是
。
答案:5.7;20下列程序的运行结果是
。#include
int
main(void){
int
a=9,b=2;
float
x=6.6,y=1.1,z;
z=a/2+b*x/y-1/2;
printf("%5.2f",z);
return
0;
}
答案:16.00若有定义“char
c1='a',c2='e';”,已知字符“a”的ASCII码值是97,则执行语句“printf("%d,%c",c1,c2+2);
”后的输出结果是
。
答案:97,g算法通常具有以下5个方面的特性:
、
、
、零个或多个输入、一个或多个输出。
答案:有穷性;确定性;可行性若有char
x=32
,
y=3
;
则表达式
~x&y的值为
。
答案:3设整型变量
x、y、z均为3,执行“x%=y+z”后,
x=
。
答案:3/star3/origin/45a14904f5f44b4f92b7ba5b3dea21b5.png
答案:sin(sqrt(x*x假设x是一个两位正整数,使该数的个位和十位调换的表达式为
。(如78调换后变为87)
答案:x%10*10+x/10表达式“3.5+(int)(8/3*(3.5+6.7)/2)%4”的值为
。
答案:5.5有以下程序:#includeint
main
(void){
int
m,n,p;
scanf("%d%d%d",&m,&n,&p);
printf("m+n+p=%d\n",
m+n+p);
return
0;}当从键盘上输入的数据为:2,3,5,则正确的输出结果是(
)。
答案:不确定值以下程序的输出结果是(
)。
#includeint
main(void){
char
c1='6',c2='0';
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}
答案:6,0,6,102设a、b为float型变量,则以下不合法的赋值语句是()。
答案:b=(a%4)/5要输出长整型的数值,需用格式符()。
答案:%ld用函数从终端输出一个字符,可以使用函数()。
答案:putchar()若有以下语句:inta=3,b=6,c;c=a^b<<2;,则变量c的二进制值是()。
答案:00011011执行语句“x=(a=3,b=a--);”后,x、a、b的值依次为(
)。
答案:3,2,3若有代数式2ab/cd,则下面错误的C语言表达式是(
)。
答案:2*a*b/c*d
在C语言中,要求运算数必须是整型的运算符是(
)。
答案:%下面程序的输出结果是
。#include
int
main(void){
int
a=1,
b=1;
switch(a-b){
case
0:
b++;
case
1:
a++;b++;break;
case
2:
b++;}printf("a=%d,
b=%d\n",
a,
b);
return
0;}
答案:a=2,b=3下面程序的输出结果是
:
(
)(
)(
)
#includeint
main(void){
int
a,b,c;
a=b=c=1;
a+=b;
b+=c;
c+=a;
printf("(1)%d\n",a>b?a:b);
printf("(2)%d\n",a>c?a--:c++);
(a>=b>=c)?printf("AA"):printf("CC");
printf("\na=%d,b=%d,c=%d\n",a,b,c);
return
0;}
答案:(1;(2;CC;a=2,b=2,c=4下面程序的输出结果是
。
#includeint
main(void){
int
a=2,b=7,c=5;
switch(a>0)
{
case
1:
switch(b<0)
{
case
1:
printf("@");break;
case
2:
printf("!");break;
}
case
0:
switch(c==5)
{
case
0:
printf("*");break;
case
1:
printf("#");break;
default:
printf("$");break;
}
default:printf("&");
}
return
0;
}
答案:&下面程序的输出结果是:(
)
(
)
(
)
#includeint
main(void){
int
x,y=1,z;
if(y!=0)
x=5;
printf("%d
",x);
if(y==0)
x=4;
else
x=3;
printf("%d
",x);
x=2;
if(y<0)
if(y>0)
x=4;
else
x=5;
printf("%d\n",x);
return
0;}
答案:5;3;2能正确表示x<0或10答案:x<0||(x>10&&x<50若有定义“int
a=1,b=0;”表达式--a>(b+a)?10:5>b++?'A':
'Z'的值为
。
答案:A;'A'判定闰年year的条件是能被4整除但不能被100整除,或能被400整除的年份,用表达式表示为
。
答案:(year%4==0&&year%100!=0当a=3,b=-4,c=5时,表达式(a&&b)==(a||c)的值是
。
答案:1用x描述1到100之间的所有偶数的表达式为
。
答案:(x>=1&&x<=100有int
x,y,z;且x=3,y=4,z=5,则表达式!(x+y)+z-1&&y+z/2的值为
。
答案:1执行以下程序后的输出结果是(
)。int
main(void)
{
int
a=4,
b=5,c=5;
a=b==c;
printf("%d
",a);
a=a==(b-c);
printf("%d\n",a);
}
答案:1
0若已定义a=3,b=c=4,则执行下列语句后变量x、y的值分别为(
)。
x=(c>=b>=a)?1:0;
y=c>=b&&b>=a;
答案:0
1有下面的程序段,执行后c的值为(
)。
inta=3,b=2,c;
charp='A';
c=(a&&b)&&(p>'B')
答案:0下列运算符中优先级最高的是(
)。
答案:!以下选项中不合法的表达式是(
)。
答案:x+1=x假设有定义int
a=1,b=2,m=1,n=1。则执行表达式
(m=a>b)&&(n=a!=b)后,m,n的值为(
)。
答案:0
1判断x的值为奇数,以下不能满足要求的表达式是(
)。
答案:!(x%2)要判断char型变量c是否为大写字母,可以使用表达式(
)。
答案:c>='A'&&c<='Z'要判断char型变量m是否是数字字符,可以使用表达式(
)。
答案:m>='0'&&m<='9'下列程序的功能为:求1~100以内所有能被13整除的数的累加和,当累加和超出100时停止累加。请填空。#include
intmain(void){
inti,sum=0;
for(i=1;i<100;i++)
{
if(
)
sum+=i;
if(sum>100)
;
}
printf("i=%d,sum=%d\n",i,sum);
return0;}
答案:i%13==0;break下列程序的功能为:将从键盘输入的一组字符统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大数。#includeintmain(void){
intm=0,n=0;
charc;
while((
)!='\n')
{
if(c>='A'&&c<='Z')m++;
if(c>='a'&&c<='z')n++;
}
printf("%d\n",m答案:c=getchar(;n:m/star3/origin/835027bd9e6263b6582ce97db57b8ee2.png
答案:s=7以下程序的运行结果是
。
#includeintmain(void)
{
inty=10;
do
{
y--;
}while(--y);
printf("%d\n",++y);}
答案:1设定义“int
k=1,n=163;”,执行下面程序段后,k的值是
。
do{
k*=n%10;
n/=10;}while(n);
答案:18执行下列程序段后的输出是
。
x=0;
while(x<3)
for(;x<4;x++)
{
printf("%d",x++);
if(
x<3)
continue;
else
break;
printf("%d",x);}
答案:02/star3/origin/4c559cae67b8191a662b03fe58ded513.png
答案:x=1,y=20/star3/origin/1a77312082b626993548f0f3d9db1fdb.png
答案:sjhiu下列for循环语句执行的次数是(
)。
for(x=0,y=0;(y=123)&&(x<4);x++);
答案:4以下叙述正确的是(
)。
答案:do-while语句构成的循环,当while语句中的表达式值为零时结束循环执行下面的程序后,a的值为(
)。
#includeintmain(void){
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)
break;
if(b%3==1)
{
b+=3;
continue;}
b-=5;
}
return0;}
答案:8下面有关for循环的正确描述是(
)。
答案:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来设有以下语句:
intx=3;do{printf("%d\n",x-=2);}while(!(--x));该程序段的执行结果为(
)。
答案:显示1和-2下面程序段的运行结果为(
)。
inta=1,b=2,c=2,t;
while(a答案:1,2,0程序段“int
num=0;
while(num<=2)
printf("%d,",num++);”的运行结果是(
)。
答案:0,1,2,下面程序输出结果是(
)。#includeintmain(void){
intk=0;charc='A';
do
{
switch(c++)
{
case'A':k++;break;
case'B':k--;
case'C':k+=2;break;
case'D':k=k%2;continue;
case'E':k=k*10;break;
default:k=k/3;
}
k++;
}while(c<'G');
printf("k=%d\n",k);
return0;}
答案:k=4在下列选项中,没有构成死循环的程序段是(
)。
答案:int
k=1000;
do
{
++k;
}
while(k>=10000);/star3/origin/4528b381470298d2f7ee9dadba4e65b9.png
答案:max=85;min=5;sum=180;aver=30.00若有定义“inta[4][4];”,则a数组中行下标的下限为
,列下标的上限为
。
答案:0;3有二维数组定义“intk[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};”,则其中元素k[2][1]的值是
,k[1][2]的值是
。
答案:10;7有定义语句“chara[]={"Iamastudent"};”,该字符串的长度是
,a[3]=
。
答案:14;m/star3/origin/870372a77d52ded25990e13e90a9e297.png
答案:1
1
1
5/star3/origin/b1e7f16947f31a2fd0b7a8dce5ac2c38.png
答案:Tony下列程序段的运行结果是
。
char
str[20]="This
is
my
book";
str[4]=
'\0';
str[9]=
'\0';
printf
("
%d",strlen
(str));
答案:4有定义语句“int
i=3,x[4]={1,2,3};”,则数组元素x[i]的值是(
)
。
答案:0下列关于数组的描述中错误的是(
)。
答案:如果在对数组进行初始化时,给定的数据元素个数比数组元素少,多余的数组元素自动初始化为最后一个给定元素的值有以下程序段,当输入为happy!时,程序运行后输出结果是(
)。
char
str[14]={"I
am
"};
strcat(str,
"sad!");
scanf("%s",str);
printf("%s",str);
答案:happy!下列程序段的输出结果是(
)。
char
str[15]=
"hello!";
printf("%d\n",strlen(str));
答案:6下列程序段的输出结果是(
)。
int
aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int
i,s=0;
for(i=0;i<4;i++)
s+=aa[i][1];
printf("%d\n",s);
答案:19若有定义“char
str1[30],str2[30];”,则输出较大字符串的正确语句是(
)。
答案:if(strcmp(str1,str2)>0)
printf("%s",str1);
elseprintf("%s",str2);下列对二维数组a进行正确初始化的是(
)。
答案:inta[][3]={1,2,3,4,5,6};若有定义“inti;intx[3][3]={2,3,4,5,6,7,8,9,10};”,则执行语句“for(i=0;i<3;i++)printf("%4d",x[i][2-i]);”的输出结果是()。
答案:468若有以下的数组定义:“chara[]="abcd";charb[]={'a','b','c','d','e'};”,则以下正确的描述是()。
答案:a数组和b数组长度相同已定义“inti;charx[10];”,为了给x数组赋值,以下正确的语句是(
)。
答案:for(i=0;i<6;i++)x[i]=getchar();/star3/origin/f2a9f1b1d023bba04780747ff1037862.png
答案:a=48以下程序的输出结果是
。#include#includeintcount(charstr[],charc);intmain(void){
chars[]="IloveCprogramming!\n\0IloveChina!";
printf("%d%d\n",count(s,'I'),count(s,'o'));
return0;}intcount(charstr[],charc){
inti,t=0;
for(i=0;i答案:12声明一个局部变量用静态方式存储的关键字是
。
答案:static已知函数的定义为int
fun(int
a,
double
b){…},则声明函数的语句为
。
答案:int
fun(int
a,
double
b若函数类型缺省没定义,则隐含的函数返回值类型是
。
答案:int函数由
和函数体两个部分组成。
答案:函数首部;函数头若函数没有返回值语句,则函数的返回值类型说明符为
。
答案:void程序执行的入口点、不能被其他函数调用的是
函数。
答案:main(函数f定义如下,执行语句“sum=f(5)+f(3);”后,sum的值应为(
)。intf(intm){
staticinti=0;
ints=0;
for(;i<=m;i++)
s+=i;
returns;}
答案:15已知:#definefun(a,b)a*b,则:fun(1+2,3+4)的值为(
)。
答案:11以下说法中不正确的是(
)。
答案:在函数内的复合语句中定义的变量在整个函数范围内都可访问关于函数的递归调用,以下说法错误的是(
)。
答案:递归函数的效率比功能相同的非递归函数更高以下能够声明函数voidfun(intarr[],intn){}的语句是(
)。
答案:voidfun(int[],int);用数组名作为函数调用时的实参,则传递给形参的是(
)。
答案:数组首地址已知整型数组a和b都只有一个元素0且函数f定义如下,则执行f(a,b[0])后数组a和b中的元素分别为(
)。voidf(inta[],intb){
a[0]=1;
b=1;}
答案:1和0对于声明为void
func(char
ch,
double
x);的函数,以下能调用该函数的语句是(
)。
答案:func('A',
10.5);C语言中函数返回值的类型是由以下(
)决定的。
答案:函数定义时指定的类型以下关于函数的说法中正确的是(
)。
答案:调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称为“回文”,如level)。#include"stdio.h"#include"string.h"int
main(void){
chars[80],*t1,*t2;
intm;
;
m=strlen(s);
t1=s;
t2=
;
while(t1答案:gets(s;s+m-1;t2--;t2=t2-1;--t2以下fun函数的功能:累加数组元素中的值,n为数组元素个数,累加的和放入x所指的存储单元中。fun(intb[],intn,int*x){
intk,r=0;
for(k=0;k答案:r+b[k];*x函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串与t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0。
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==
)
{s++;
t++;
}
return
;
}
答案:*t;*s-*t设有变量定义:“int
a[]={1,2,3,4,5,6},*p=a+2;”,则计算表达式*(p+2)*p[2]的值是
。
答案:25已有定义char*names[]={"Wang","Li","Chen"};
语句“printf("Second%sFirst%s",
names[1],
names[0]);”的运行结果为
。
答案:SecondLiFirstWang已知“int
a[5]
=
{
2,
3,
4,
5,
6
};
int
*p
=
a+2;”,表达式
*p*a[3]
的值是
。
答案:20执行下面的语句后,程序的输出是
。
int
m[]={1,2,3,4,5,6,7,8},
*p1=m+7,
*p2=&m[2];
p1-=3;
printf("%d,
%d\n",*p1,*p2);
答案:5,
3若有定义“int
w[10]={23,54,10,33,47,98,72,80,61},
*p=w;”,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是
。
答案:*(p+5若有语句:int
a[4]={1,2,3,4},*p;
p=&a[1];,则printf("%d\n",
*p++);的结果是
。
答案:2/star3/origin/48d3911b12353bd02b6f189a742d403c.png
答案:8/star3/origin/0942ec42c23c9757b6548a56852bcdf7.png
答案:2/star3/origin/9bcd76b8c858688b6eaba6ccc7e7c762.png
答案:ga若有说明“inti,j=7,*p=&i;”,则与“i=j”;等价的语句是()。
答案:*p=*&j;设已有定义:“char*st="howareyou";”,下列程序段中正确的是()。
答案:chara[11],*p;strcpy(p=a+1,&st[4]);/star3/origin/fa6882e012a8f58e89ebce6d360b2f7d.png
答案:19/star3/origin/f5a11073cf9beaf54c549f6e37a3edfd.png
答案:xyabcABC/star3/origin/39ba0a0860ec85e2fb52ac786bc783c1.png
答案:字符c的地址设已定义char*ps[2]={"abc","1234"};则以下叙述中错误的是()。
答案:ps为指针变量,它指向一个长度为2的字符串数组下面对字符串变量的初始化或赋值操作中,错误的是()。
答案:chara[10];a="OK";设已定义“chars[]="ABCD";”,printf("%s",s+1)的值为()。
答案:BCD若已定义“inta[]={1,2,3,4},*p=a+1;”则p[2]的值是()。
答案:4若已定义“inta[]={1,2,3,4},*p=a;”,则下面表达式中值不等于2的是()。
答案:*(++a)设已定义“inta,*p;”,下列赋值表达式中正确的是()。
答案:p=&a下列程序运行时若输入:3101wang102huang103liu,则其运行结果为:
#include#includestruct
worker{
int
num;
char
name[20];};int
main(void){
struct
worker
per[10],t;
int
n,i,j;
scanf("%d",&n);
for(i=0;i0)
{
t=per[j];
per[j]=per[j+1];
per[j+1]=t;
}
for(i=0;i答案:102,huang;103,liu;101,wang/star3/origin/8b2cf5597fe3a70480780578a2644e05.png
答案:r->next=p->next;p->next=r对下列结构体类型变量m中的成员x的三种引用方式为:
、
和
。
structstudent
{
intx;
floaty;
}m,*p=&m;
答案:m.x;(*p;p->x函数findbook的功能是:在有n个元素的数组s中查找名为a的书,若找到,函数返回数组下标,否则,函数返回-1,请填空。struct
data{
int
id;
char
name[20];
double
price;}
book[100];int
findbook(struct
data
s[],
int
n,
char
a[]){
int
i;
for(i=0;i答案:strcmp(s[i].name,
a;return
-1“.”称为
运算符,“->”称为
运算符。
答案:成员;指向设有以下说明语句:
structstu
{
inta;
floatb;}stutype;
则struct是
、structstu是
、stutype是
、a和b是
。
答案:定义结构体类型的关键字;
结构体类型的关键字;用户定义的结构体类型名;结构体类型名;用户定义的结构体类型变量;结构体类型变量;结构体成员名;成员名下列程序的运行结果为:
。
#includeint
main(void){
struct
cmplx
{
int
x;
int
y;
}
cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].y);
return
0;}
答案:21若有以下程序段,则语句“printf("%d\n",sizeof(test));”的输出是
。
typedef
struct
{
long
a[2];
int
b[4];
char
c[8];
}ABC;
ABC
test;
答案:32若有以下定义:
struct
person
{
char
name[9];
int
age;
};
struct
person
c[10]
=
{{"John",17
},{"Paul",19
},{"Mary",18
},{"Adam",16
}};
则语句“printf("%s",
c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论