五道选择题
1、有以下代码,程序的输出结果是( )
#include <stdio.h>
int main()
{
int a = 0, b = 0;
for (a = 1, b = 1; a <= 100; a++)
{
if (b >= 20) break;//1
if (b % 3 == 1)//2
{
b = b + 3;
continue;
}
b = b-5;//3
}
printf("%d\n", a);
return 0;
}
A.10 B.9 C.8 D.7
2、下面代码的结果使()
#include <stdio.h>
int main()
{
int arr[] = {1,2,(3,4),5};
printf("%d\n", sizeof(arr));
return 0;
}
A.4 B.16 C.20 D.5
3、以下叙述中正确的是( )
A. 只能在循环体内和switch语句体内使用break语句
B. 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C. continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D. 在while语句和do-while语句中无法使用continue语句
4、设函数 fun 和实参数组的说明是如下形式,则对函数的调用语句中,正确的是( )
void fun(char ch,float x[]);
float a[10];
A.fun("asd",a[ ]) B.fun('x' , A)
C.fun('68' , 2.8) D.fun(32 , a)
5、在C语言中,以下正确的说法是( )
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元
D. 形参是虚拟的,不占用存储单元
编程题1:
寻找奇数_牛客题霸_牛客网
#include <stdio.h>
int main() {
int a=0;
scanf("%d",&a);
int i=0;int order=0;
//order=0是因为,异或操作符^0才会保持不变,^1可能会使最后一位丢失
for(i=0;i<a;i++)
{
int b=0;
scanf("%d",&b);
order^=b;//边输入,边异或
}
printf("%d",order);
}
编程题2:
截取字符串_牛客题霸_牛客网
#include <stdio.h>
#include<string.h>
int main() {
char arr1[1000]={0};
char arr2[1000]={0};
gets(arr1);
//使用gets,避免字符串中有空格
//空格会使scanf的输入中止
int len=strlen(arr1);
//计算输入的字符串长度
int k=0;
scanf("%d",&k);
if(k>=len)
//当k>=len时就不用截取了,直接打印就可以
{
printf("%s",arr1);
return 0;
}
for(int i=0;i<k;i++)
{
arr2[i]=arr1[i];
//将前k个字符截取到对应数组中
}
printf("%s",arr2);
}
好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O