提示:内容已经过期谨慎付费,点击上方查看最新答案
像程序员一样思考
下面程序运行后,输出结果是( )。
#include <stdio.h>
main( )
{ int a[10]={1,2,3,4,5,6},i,j;
for(i=0;i<6;i++)
{ j=a[i];a[i]=a[5-i];a[5-i]=j;}
for(i=0;i<6;i++) printf("%d ",a[i]);
}
下述循环的循环次数是( )。
int k=2;
while(k=0)
printf("%d",k);k--;
printf("\n");
阅读下列程序,则运行结果为( )。
fun( )
{ static int x=5;
x++;
return x;
}
main( )
{ int i,x;
for(i=0;i<3;i++)
x=fun( );
printf("%d\n",x);
}
以下程序的输出结果是( )。
main( )
{ char c='z';
printf("%c",c-25);
}
以下程序的执行结果是( )。
main()
{
int k=8;
switch(k)
{
case 9:k+=1;
case 10:k+=1;
case 11:k+=1; break;
default:k+=1;
}
printf("%d\n",k);
}
以下程序输出a数组中的最小值及其下标,在划线处应填入的是( )。
main( )
{ int i,p=0,a[10];
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=1;i<10;i++)
if(a[i]<a[p])_______________;
printf("%d,%d\n",a[p],p);
}
能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( )。
以下选项中,与a=i++完全等价的表达式是( )。
有如下程序:
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是( )。
在C语言的函数中,下列正确的说法是( )。
以下程序的输出结果是( )。
#include <stdio.h>
#include <string.h>
fun(char s[])
{int x,y;
char c;
for(x=0,y=strlen(s)-1;x<y;x++,y--)
{c=s[y];s[y]=s[x];s[x]=c;}
}
main()
{char a[]="123456789";
int k;
fun(a);
puts(a);}
函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是( )。
若从键盘输入58,则以下程序输出的结果是( )。
main()
{
int a;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
以下能正确定义一维数组的选项是( )。
如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( )。
以下程序段的输出结果是( )。
int n=10;
while(n>7)
{n--;
printf("%d",n);
}
下面程序输出的结果是( )。
main( )
{ int i,j,x=0;
static int a[6]={1,2,3,4,5,6};
for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
printf("%d\n",x);
}
以下程序运行后的输出结果是( )。
main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10:p%3)); }
语句while(!E);中的表达式!E等价于( )。
若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf("x=%d,y=%f",&x,&y);
则为了将数据10和66.6分别赋给x和y,正确的输入应是( )。
在C语言中,运算对象必须是整型数的运算符是( )。
有如下函数:
ggg(x)
float x;
{printf("\n%d",x*x);}
则函数的类型是( )。
以下程序的输出结果是( )。
main()
{ char p1[]="abcd",p2[]="efgh",str[50]="ABCDEFG";
strcat(str,p1); strcat(str,p2);
printf("%s",str);
}
以下关于数组的描述正确的是( )。
若已定义x和y为 double 类型,则表达式x=1,y=x+3/2 的值是( )。
以下选项中,与k=n++完全等价的表达式是( )。
若用数组名作为函数调用的实参,则传递给形参的是( )。
请读程序:
#include <stdio.h>
#include <string.h>
main()
{ char s1[20]="AbCdEf", s2[20]="aB";
printf("%d\n",strcmp(s1,s2));
}
上面程序的输出结果是( )。
x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( )。
表达式18 && 53 的值是( )。
在C语言中,形参的缺省存储类别是( )。
对以下说明语句的正确理解是( )。
int a[10]={6,7,8,9,10};分析以下程序的运行结果( )。
func(int a,int b)
{
int temp=a;
a=b; b=temp;
}
int main()
{
int x,y;
x=10; y=20;
func(x,y);
printf((“%d,%d\n”,x,y);
return 0 ;
}
如果p是一个整型数,下列表达式始终为真的是( )。
以下程序的输出结果是( )。
#include <stdio.h>
int m=13;
int fun(int x,int y)
{int m=3;
return (x*y-m);
}
main()
{int a=7,b=5;
printf("%d\n",fun(a,b)/m);}
有如下函数:
float ggg(x)
float x;
{return x*x;}
main()
{printf(" \n",ggg(1.2));}
选项中,不属于字符常量的是( )。
下列各m的值中,能使m%3==2 && m%5==3 && m%7==2为真的是( )。
给出以下定义:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
则正确的叙述为( )。
以下函数的功能是( )。
char s[],t[];
sss(s,t)
{int i=0;
while(t[i])
{s[i]=t[i];i++}
s[i]='\0';
}
A:6 5 4 3 2 1 B:1 2 3 4 5 6 C:1 5 4 3 2 6 D:1 5 3 4 2 6
答案:程序进入死循环
A:1次 B:0次 C:2次 D:无限次
答案:0次
A:6 B:8 C:5 D:7
答案:5,12AI参考:运行结果为:C:5。程序中的函数fun()中,使用了一个静态变量x,并在其基础上加1后再返回。在main()函数中,使用for循环调用了fun()函数三次,每次都将x赋值为fun()函数的返回值,即每次x都加1。因此,最终x的值为5。所以,输出结果为5。'
A:a B:y C:Z D:z-25
答案:5
A:10 B:8 C:11 D:9
答案:0, 7
A:i=p B:p=j C:a[p]=a[i] D:p=i
A:a>=10 or a<=0 B:a>=0&& a<=10 C:a>=10 && a<=0 D:a>=10 || a<=0
A:a=++i B:a=i,i=i+1 C:a+=i+1 D:i=i+1,a=i
A:a=2,b=1 B:a=1,b=0 C:a=2,b=2 D:a=1,b=1
A:可以有也可以没有形参 B:形参必须是变量名 C:必须有形参 D:数组名不能作形参
AI参考:在C语言的函数中,正确的说法是形参可以是变量名,选项B是正确的。形参(Formals)是指在函数定义时使用的参数,它们在函数调用时被传递的值。在C语言中,形参可以是变量名,也可以是常量名,甚至是表达式。它们不需要在函数调用时实际存在,只是在函数定义时作为函数的参数使用。因此,选项A和D都是错误的。而选项C的说法也不准确,因为C语言函数通常需要至少一个形参,但并不是必须的。因此,正确答案是B:形参必须是变量名。'
A:123454321 B:987654321 C:987656789 D:123456789
A:实参将其地址传递给形参,并释放原先占用的存储单元 B:实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C:实参将其值传递给形参,调用结束时形参再将其值回传给实参 D:实参将其值传递给形参,调用结束时形参并不将其值回传给实参
A:5858 B:无 C:58 D:585858
A:为局部变量,只在该函数内有效 B:定义无效,为非法变量 C:为局部变量,只在该复合语句中有效 D:为全局变量,在本程序文件范围内有效
A:10987 B:1098 C:9876 D:987
A:数组a中首尾的对应元素的乘积之和 B:数组a中相邻各元素的乘积之和 C:数组a中首尾的对应元素的乘积 D:数组a中相邻各元素的乘积
A:0 B:30 C:1 D:3
AI参考:正确选项是【D:3】。程序中首先定义了一个整数变量p并赋值为30,然后使用printf函数输出一个表达式的结果。表达式为:(p/3>0 ? p/10:p%3)。这个表达式的意思是:如果p除以3的商大于0,则输出p除以10的结果,否则输出p除以3的余数。由于p的值为30,因此表达式的结果为3。所以程序输出的结果为3。因此,选项D是正确答案。'
A:E==1 B:E !=1 C:E==0 D:E !=0
A:10<回车>66.6 B:10 66.6 C:x=10<回车>y=66.6 D:x=10,y=66.6
A:%和 B:% C: D:**
A:是void B:是int C:无法确定 D:与参数x的类型相同
A:ABCDEFGabcdefgh B:ABCDEFGefghabcd C:ABCDEFGefgh D:abcdefgh
A:数组的大小是固定的,但可以有不同类型的数组元素。 B:数组的大小是固定的,所有数组元素的类型必须相同。 C:数组的大小是可变的,但所有数组元素的类型必须相同。 D:数组的大小是可变的,可以有不同类型的数组元素。
AI参考:正确答案是【D:数组的大小是可变的,可以有不同类型的数组元素】。数组的大小是可变的,也就是说它的大小可以改变,而且数组中可以有不同类型的数组元素,选项D是正确的。其他选项A、B、C都存在一定的错误。A选项中的“但可以有不同类型的数组元素”和B选项中的“所有数组元素的类型必须相同”在理论上是不矛盾的,但在实际编程中是不符合数组使用规范的。C选项中的“所有数组元素的类型必须相同”在实际情况中也不常见,因为很多情况下需要不同类型的元素存储在同一个数组中。'
A:2.0 B:2 C:2.5 D:1
A:k=++n B:n=n+1,k=n C:k=n,n=n+1 D:k+=n+1
A:数组元素的个数 B:数组的第一个元素的值 C:数组的首地址 D:数组中全部元素的值
A:负数 B:正数 C:零 D:不确定的值
A:input x、y、z; B:scanf("%d%d%d",x,y,z); C:scanf("%d%d%d",&x,&y,&z); D:read("%d%d%d",&x,&y,&z);
A:53 B:0 C:1 D:18
AI参考:正确选项是【B:0】。表达式“18 && 53”是一个逻辑与运算,当左侧的表达式“18”为假(即小于等于0)时,整个表达式的值才为假,否则为真。在这个表达式中,由于18为真,所以整个表达式的值为真,即0。因此,答案为B。'
A:.auto B:static C:register D:extern
A: 将5个初值依次赋给a[1]至a[5] B: 将5个初值依次赋给a[6]至a[10] C: 将5个初值依次赋给a[0]至a[4] D: 因为数组长度与初值的个数不相同,所以此语句不正确
A:20,10 B:10,10 C:10,20 D:20,20
A:P||P B:P&&!P C:P&&P D:P||!P
A:10 B:1 C:2 D:7
A:%d B:无法确定 C:%f D:%ld
A:6 B:17 C:23 D:8
AI参考:正确答案是:C:23。$根据题意可得:m%3==2$说明m除以3的余数是2,即m除以3的余数等于m%3的值;$m%5==3$说明m除以5的余数是3,即m除以5的余数等于m%5的值;$m%7==2$说明m除以7的余数是2,即m除以7的余数等于m%7的值。因此,这三个条件必须同时满足,故选C。'
A:数组x的长度小于数组y的长度 B:数组x和数组y的长度相同 C:数组x的长度大于数组y的长度 D:数组x和数组y等价
A:将字符串s复制到字符串t中 B:比较两个字符串的大小 C:将字符串t复制到字符串s中 D:求字符串的长度
AI参考:答案:C 解析: 函数的输入参数为s和t两个字符数组,返回值是空。在函数体内,先用i初始化循环变量,然后在循环中通过t[i]依次将t数组中的每个字符赋值给s数组的相应位置,同时i加一,当t数组的所有字符都赋值完成后,再给s数组的最后一个位置赋值为字符串结束符 。因此该函数的功能是将字符串t复制到字符串s中。 A选项:该选项的功能是将字符串s复制到字符串t中,这与题目描述的功能相反,因此不正确。 B选项:该选项的功能是字符串比较大小,这在题目中并未给出任何提示,因此不能确定是否正确。 D选项:该选项的功能是求字符串的长度,在题目中并未给出求长度的提示,因此也不能确定是否正确。 故正确答案为C。"