提示:内容已经过期谨慎付费,点击上方查看最新答案
二级C语言编程技巧与实例解析(山东联盟)
- 若i,j已定义为int型,则以下程序段中循环体的总的执行次数是
for(i=5;i;i--)
for(j=0;j<4;j++)
{ } - 下面程序的运行结果是:
#include
main( )
{ int y=10;
do { y--; }
while(--y) ;
printf(“%d\n”,y--); } - 下面程序的正确运行结果是:
main( )
{int a=2, i;
for(i=0;i<3;i++) printf(“%4d”,f(a) ); }
f( int a)
{ int b=0; static int c=3;
b++; c++;
return (a+b+c);} 表达式a+=a-=a=9的值是( )
一个C语言程序是由
- #include
void fun(int a[], int n)
{ int i, t;
for(i=0; i{t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;}
}
main()
{ int k[10]={1,2,3,4,5,6,7,8,9,10}, i;
fun(k,5);
for(i=2; i<8; i++) printf("%d", k[i]);
printf("\n");}
程序的运行结果是 有以下程序:
#include <stdio.h>
int fun( )
{static int x=1;
x+=1;return x;
}
main( )
{int i,s=1;
for(i=1;i<=2;i++) s+=fun( );
printf("%d",s);
}
程序运行后的输出结果是( )
在C语言中,以 作为字符串结束标志
- 以下说法不正确的是:
typedef struct stu
{ int a;
float b;
} stutype;
下面叙述中错误的是
- 当输入为"quert?"时,下面程序的执行结果是
#include
main()
{while(putchar(getchar())!='?');} - 若有以下定义:
int a[5]={ 5, 4, 3, 2, 1 } ;
char b= ‘a’, c, d, e;
则下面表达式中数值为2的是 - 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为
if ( a < b )
if ( c < d ) x = 1 ;
else
if ( a < c )
if ( b < d ) x =2 ;
else x = 3 ;
else x = 6 ;
else x = 7 ; 语句int i=3;k=(i++)+(i++)+(i++);执行过后k的值为 ,i的值为 。
- 如果int i=3,则printf(“%d”,-i++)的结果为____ ,i的值为
- 以下能对一维数组a进行正确初始化的语句是
以下关于C语言程序函数的说法正确的是
- #include
main()
{ char *a[ ]={"abcd","ef","gh","ijk"};
int i;
for(i=0;i<4;i++)
printf("%c",*a[i]); }
程序运行后输出的结果是 - C语言规定,必须用 _____ 作为主函数名。
#include <stdio.h>
main( )
{char s[]="rstuv";
printf("%c",*s+2);
}
程序运行后的输出结果是
- 以下程序运行后的输出结果是
#include
main()
{int a=1,b=2;
for(;a<8;a++) { b+=a;a+=2;}
printf(“%d,%d\n”,a,b);} 一个C程序可以包含任意多个不同名的函数,但有且仅有一个_____,一个C程序总是从______开始执行。
- 有以下程序
main()
{int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
for(i=0;i<3;i++)
if(i<2) pa[1][i]=pa[1][i]-1;
else pa[1][i]=1;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
执行后输出结果是 - 下面程序的输出结果是
main()
{int x=40,y=4,z=4;
x=y= =z;
printf(“%d”,x);
x=x= =(y-z);
printf(%d”,x);
} - 分析下列程序
main()
{int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;ifor(j=0;j n[j]=n[i]+1;
printf("%d\n",n[1]);
}
上述程序运行后,输出的结果是 有以下程序:
#include <stdio.h>
main( )
{int C=124;
C=C____;
printf("%d",c);
}
若要使程序的运行结果为248,应在下划线处填入的是( )
- #include
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
} 程序执行后的输出结果是 - 有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是 - 以下程序的运行结果是
struct stru {int x; char c; };
main( )
{ struct stru a={10, ’x’},*p=&a; func (p);
printf ( “%d,%c”, a.x, a.c); }
func (struct stru *b)
{b->x=20; b->c=’y’; } - 下面程序的输出结果是
main()
{int x;
x=-3+4*5-6;printf(“%d”,x);
x=3+4%5-6; printf(“%d”,x);
x=-3*4%-6/5; printf(“%d”,x);
x=(7+6)%5/2; printf(“%d”,x);
} - #include
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:
case 2:a++;b++;break;
ase 3:a++;b++;break;
default:a++;b++;}
printf(“\na=%d,b=%d”,a,b);}
以上程序的输出是 下列关于main函数的说法正确的是
- 如果i=3,则k=(++i)+(++i)+(i++)执行过后k的值为 ,i的值为
- while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 的操作,否则,循环将会无限制地进行下去。
若要定义一个具有5个元素的整型数组,以下错误的定义语句是
下列符号中,可以作为变量名的是
有下列程序:
main(){char s[]="xyz123";
s=s+3;
printf("%c",s[0]);
}
执行后的结果是( )。
- C语言中,运算对象必须是整型数的运算符是
- 在C 语言中,下列类型属于基本类型的是
- 假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是
- 函数若有形参,则它一定有返回值
- 函数返回值的类型是由在定义函数时所指定的函数类型决定的
- 关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减
- 对整型常量可进行自加或自减运算,而对变量或表达式不可以
- 下面程序的运行结果:2,3,1
#include
void main( )
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
} - 下面程序的值是 1
#include
main()
{int a=3;
printf("%d",(a==1)||(a!=1));
} - 如果函数定义出现在函数调用之前,可以不必加函数原型声明
- 用gets函数可以接收一个含有空格的字符串
- 在内存中存储结构体类型的变量要占连续一段的存储单元
- 以下程序运行后的输出结果是 welcome
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,"welcome");
for(i=6;i>=0;i--) putchar(*(p+i));
printf("\n-"); free(p);
} - 有以下程序(说明:字符0的ASCII码值为48)
#include
main()
{char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序运行时从键盘输入48<回车>,则输出结果为 09 - C语言的三种循环不可以互相嵌套
- 使用static 定义的变量属于静态变量
- 在C语言中,字母的大小写不被区分
- 结构体变量可以作数组元素
- 逻辑表达式的值只能为1或0
- 只有在函数被调用时,其形式参数才临时地占有存储空间
- 指针数组的每个元素都是一个指针变量
- 表达式语句和表达式没有什么区别
for循环的循环体可以是空语句
A:30 B:20 C:24 D:25
答案:24
A:8 B:-1 C:0 D:1
答案:dAI参考:正确选项是 C:0。程序运行过程如下:1. 初始时,y=10。2. do-while循环开始,y自减1,变为9。3. while条件判断,y再自减1,变为8。此时循环条件为真,继续执行循环体。4. 在循环体内,y再自减1,变为7。此时循环条件仍为真,继续执行循环体。5. 循环结束后,y再自减1,变为6。但是printf函数中的y--在输出结果时会先输出6,然后再将y减1。所以最终输出结果为6。因此,程序的运行结果是0。'
A:7911 B:777 C:7 8 9 D:710 13
答案:-40443AI参考:正确选项是:C:7 8 9程序的运行结果是f(a)中变量b和c的累加值,也就是f(a) = 3+4+5 = 12,所以在main函数中循环输出的结果是7、8、9,总共循环3次,所以正确答案是C选项。'
A:0 B:18 C:-9 D:9
答案:B.0;
A:若干过程组成; B:若干子程序组成. C:函数组成, 并且每一个C程序必须且只能由一个主函数; D:一个主程序和若干个子程序组成;
答案:函数组成
A:1098765 B:345678 C:876543 D:321678
A:4 B:3 C:5 D:6
AI参考:程序运行后的输出结果是选项C,即“5”。程序中的fun函数是一个静态变量,每次调用时都会自增1,因此第一次调用返回2,第二次调用返回3,以此类推。在main函数中,for循环调用了fun函数两次,因此变量s的值最终为5。所以程序的输出结果为5。'
AI参考:在C语言中,字符串是以空字符( )作为结束标志的。所以,答案应该是: A. C语言中字符串是以空字符作为结束标志。 这个答案来源于你给出的段落:“在C语言中,以 作为字符串结束标志”。这个描述并不准确,因为C语言中的字符串实际上是以空字符( )作为结束标志的,而不是 。不过,如果你想在C语言中表示一个由空格组成的字符串,你可以使用双引号()将空格括起来,例如:这是一个由空格组成的字符串。这样的字符串在C语言中会被正确地处理和存储。"
A:形参可以是常量、变量或表达式 B:形参应与其对应的实参类型一致 C:实参可以是任意类型 D:实参可以是常量、变量或表达式
AI参考:正确答案是C:实参可以是任意类型。选项C表述不正确,因为实参可以是常量、变量或表达式,但必须在值可以使用的有效范围内,也就是需要在函数被调用之前确定实参的类型和值。因此选项C不正确,选项A、B和D表述正确。所以答案是C。'
A:stutype是用户定义的结构体变量名 B:struct是结构类型的关键字 C:a和b都是结构成员名 D:struct stu是用户定义的结构类型
A:quert? B:rvfsu? C:quert D:Rvfsu
A:a [3] B:a [e – c] C:a [d-b] D:a [ e-b ]
AI参考:正确选项是:D:a [e-b] 解释:在给定的定义中,数组a的索引是从0开始的,所以a[3]的值是5。而表达式e-b的结果是e-a,即e的ASCII码值减去a的ASCII码值,结果为2。因此,选项D中的表达式a[e-b]的值也为2。"
A:3 B:6 C:2 D:1
AI参考:答案:B程序执行过程如下:1. a < b 为真,进入第一个if语句。2. c < d 为真,所以x = 1。3. 退出第一个if语句,进入else语句。4. a < c 为真,所以进入第二个if语句。5. b < d 不为真,所以x = 3。6. 退出第二个if语句,此时x的值为3。因此,执行完程序段后x的值为6。'
A:9,6 B:15,5 C:18,6 D:12,5
A:-4,4 B:-3,3 C:-4,3 D:-3,4
A:int a[10]=(0,0,0,0,0); B:int a[10]={ }; C:int a[ ]={}; D:int a[10]={10*1};
A:C语言程序总是从main()函数开始执行 B:C语言程序总是从第一个定义的函数开始执行 C:在C语言程序中,要调用的函数必须在main()函数中定义 D:C语言程序中的main()函数必须放在程序的开始部分
AI参考:正确选项是A:C语言程序总是从main()函数开始执行。C语言程序的执行是从main函数开始的,这是C语言的典型程序入口。其他选项中,B选项说法错误,C语言程序可以是从main函数之后的任何位置开始执行的;C选项中,函数可以在main函数之前定义,也可以在main函数之后定义,甚至可以在main函数内部定义,然后在main函数中调用;D选项中,main函数的位置没有规定,可以在程序的任何位置。'
A:abcdefghijk B:dfhk C:abcd D:aegi
AI参考:正确答案是 C:abcd。程序中定义了一个 char 类型的指针数组 a,包含四个字符串 "abcd"、"ef"、"gh" 和 "ijk"。在 for 循环中,通过 *a[i] 访问每个字符串的首字符并输出,因此输出的结果是 "abcd"。因此,正确答案是 C。'
A:include B:main C:stdio D:Function
A:tuv B:t C:字符t的ASCIl码值 D:出错
AI参考:正确选项是【B:t】。 程序中定义了一个字符数组s,并初始化为字符串rstuv。在main函数中,使用printf函数输出s数组中下标为2的字符(即s[2])的ASCII码值。由于s数组的下标从0开始,因此下标为2的字符即为s中的第三个字符,即t。所以程序运行后的输出结果是t。选项B是正确答案。选项A、C、D都与程序的实际输出结果不符。"
A:9,18 B:8,11 C:10,14 D:7,11
A:main B:Function C:include D:stdio
A:8 B:6 C:7 D:无确定值
A:4 0 B:11 C:41 D:1 0
A:2 B:3 C:1 D:0
A:|248 B:<<1 C:&0248 D:>>2
AI参考:正确选项为D:>>2在C语言中,二进制数的运算需要按照特定的优先级进行。在进行位运算时,"<<"表示左移操作,"|"表示按位或操作,"^"表示按位异或操作,"&"表示按位与操作,">"和"<<"在非负整数上没有区别,但在负数上,"<<"是逐位右移,而">"是逐位左移。根据题目中的程序,变量C被初始化为124,现在需要将其右移两位,使得结果为248。因此,应该填入">"运算符,即C>>2。所以正确选项为D:>>2。'
A:5,-2,-5 B:3,2,-1 C:4,3,-1 D:3,2,0
A:t,one B:n,two C:w,one D:o,two
A:10,x B:10,y C:20,x D:20,y
A:11 1 0 1 B:11 –3 2 1 C:12 –3 2 1 D:11 1 2 1
A:a=1,b=1 B:a=1,b=0 C:a=2,b=2 D:a=2,b=1
A:main函数必须放在C程序的开头 B:main函数必须放在C程序的最后 C:main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D:main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的
A:15,6 B:12,5 C:18,6 D:15,5
A:2 B:1 C:0 D:成立
A:int c[5]; B:int i=5,d[i]; C:int b[]={0,0,0,0,0}; D:int a[5]={0};
A:+a B:a3B C:12345e D:5
AI参考:正确选项是:B:a3B。在Python中,变量名必须遵循以下规则:1. 变量名必须以字母(包括下划线)或下划线开头。2. 变量名不能包含空格或其他特殊字符。3. 变量名是区分大小写的。选项A中的"+a"不符合规则,因为它以数字开头。选项C中的"12345e"也不是一个有效的变量名,因为它包含了字母以外的字符。选项D中的"5"也是一个数字,不是一个有效的变量名。只有选项B中的"a3B"符合上述规则,因此它是可以作为变量名的正确选项。'
A:z B:2 C:1 D:x
A:** B:%和 C: D:%
A:数组类型、实型 B:整型、实型、字符型 C:空类型、枚举型 D:结构体类型、实型
A:8 B:7 C:5 D:6
A:对 B:错
A:错 B:对
A:对 B:错
A:错 B:对
A:对 B:错
A:对 B:错
AI参考:正确答案是B:错。这个程序的值是1,但是判断的结果是假(false)。在C语言中,逻辑运算符“||”表示“或”,如果左侧的表达式为真,则整个表达式为真。在这个程序中,(a==1)为真,所以(a==1)||(a!=1)也为真。因此,程序输出的值是1,但是这个表达式的结果是假。所以这个程序是错误的。'
A:错 B:对
A:错 B:对
A:错 B:对
A:错 B:对
AI参考:这个程序的目的应该是输出字符串"welcome"中的每一个字符,但是输出的顺序和预期相反。程序的运行过程是这样的:首先分配了足够的内存空间来存储字符串"welcome",然后使用strcpy函数复制字符串到这块内存空间中。接着,程序使用一个for循环从右往左遍历这个字符串,并使用putchar函数逐个输出每个字符。最后,程序释放了这块内存空间。然而,程序在for循环中的条件i>=0是错误的,因为字符串"welcome"实际上是从内存空间的开始位置开始的,也就是指向了字符串中的第7个字符。如果改为i>5应该会更合理一些。另外,free函数在printf函数之后调用,可能存在问题,因为它是在已分配的内存被完全使用之后调用的,可能会发生未定义的行为。综上所述,选项B“对”更准确一些。这个程序的目标应该是正确地输出"welcome"这个字符串的每个字符,但由于一些原因出现了错误。不过这是一个编程技巧的示例,可以让读者了解到如何在C语言中使用malloc和free来动态分配和释放内存。'
A:错 B:对
A:对 B:错
A:错 B:对
A:错 B:对
A:对 B:错
A:错 B:对
A:对 B:错
A:错 B:对
A:错 B:对
A:错 B:对