资源描述
一、选择题:
1、一个c次序的实行是从〔〕
A、 本次序的main函数开始,到本次序文件的最后一个函数终了
B、 本次序文件的第一个函数开始,到本次序文件的最后一个函数终了
C、 本次序的main函数开始,到main函数终了
D、 本次序文件的第一个函数开始,到本次序main函数终了
2、以下次序的运行结果为〔〕
main()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(x<y)
if(y!=10)
if(!ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf(“%d\n〞,a);
}
A、1B、0 C、-1D、值不判定
3、曾经明白字母A的ASCII码为十进制数65,且c2为字符型,那么实行c2=‘A’+‘6’-‘3’;后,ascII码值为〔〕无答案
A、BB、66 C、不判定的值D、114
4、曾经明白inta=12,语句a+=a—=a*=a;实行后,a的值为〔〕
A、 a=—100B、a=—120 C、a=0D、a=12
5、下面有关for循环的精确描画是〔〕
A、 for循环只能用于循环次数曾经明白的循环
B、 for循环是先实行循环体语句,后揣摸表达式
C、 在for循环中,不克不迭用break语句跳出循环体
D、 for循环的循环体语句中,可以包含多条语句,且必须用花括号括起来
6、以下次序段〔〕
x=-1;
do
{x=x*x;}
while(!x);
A、是去世循环B、循环实行两次C、循环实行一次D、有语法差错
6、假定有说明:inta[3][4];那么对a数组元素的精确引用是〔〕
A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1)
7、揣摸字符串a跟b是否相当,应当应用〔〕
A、if(a==b)B、if(a=b)C、if(strcpy(a,b)D、if(strcmp(a,b)==1)
8、假定i为整型变量,那么以下循环实行次数为〔〕
for(i=2;i==0;)printf(“%d〞,i--);
A、无限次B、0次C、1次D、2次
9、假定用数组名作为函数调用的实参,转达给形参的是〔〕
A、 数组第一个元素的值
B、 数组中全部元素的值
C、 数组元素的个数
D、 数组的首所在
10、以下表达中不精确的选项是〔〕
A、 预处理命令行都必须以#号开始
B、 在次序中凡是以#号开始的语句行根本上预处理命令行
C、 C次序在执行过程中对预处理命令行停顿处理
D、 预处理命令不占用次序的实行时辰
11、以下次序的运行结果是〔〕
#defineMIN(x,y)(x)<(y)?(x):(y)
main()
{inti=10,j=15,k;
k=10*MIN(i,j);
printf(“%d\n〞,k);
}
A、10B、15 C、100D、150
12、以下有关宏交流的表达不精确的选项是〔〕
A、 宏交流不占用运行时辰
B、 宏名无典范
C、 宏交流只是字符交流
D、 宏名必须用大年夜写字母表示
13、假定有以下宏定义:
#defineN2
#defineY(n)((N+1)*n)
那么实行语句z=2*(N+Y(5));后的结果是〔〕
A、语句有差错B、z=34 C、z=70D、z无定值
14、已有定义intk=2;int*p1,*p2;且p1、p2均已指向变量k,下面不克不迭精确实行的赋值语句是〔〕
A、k=*p1+*p2B、p2=kC、p1=p2D、k=*p1*(*p2)
15、假定有以下定义,那么对a数组元素的精确引用是〔〕
inta[5],*p=a;
A、*&a[5]B、a+2 C、*(p+5)D、*(a+2)
17、假定有函数max(a,b),同时已使函数指针变量p指向函数max,当调用该函数时,精确的调用办法是〔〕
A、(*p)max(a,b);
B、*pmax(a,b)
C、(*p)(a,b)
D、*p(a,b)
18、假定有以下说明语句,那么对pup中sex域的精确引用办法是〔〕
structpupil
{charname[20];
intsex;
}pup,*p;
p=&pup;
A、p.pup.sexB、p->pup.sexC、(*p).pup.sexD、(*p).sex
19、语句int(*ptr)();的含义是〔〕
A、 ptr是指向一维数组的指针变量
B、 ptr是指向int型数据的指针变量
C、 ptr是指向函数的指针,该函数前去一个int型数据
D、 ptr是一个函数名,该函数的前去值是指向int型数据的指针
20、假定有以下说明语句:
structstudent
{intage;
intnum;
}std,*p;
p=&std;
那么以下对结构体变量std中成员age的引用办法不精确的选项是〔〕
A、std.ageB、p->ageC、(*p).ageD、*p.age
二、写出以下次序的运行结果或指明事实上现的功能
1、写出下面次序的运行结果
main()
{intt=1605,h,m;
h=(t/100)%12;
if(h==0)h=12;
printf(“%d:〞,h);
m=t%100;
if(m<10)printf(“0”);
printf(“%d〞,m);
if(t<1200||t==2400)
printf(“AM〞);
elseprintf(“PM〞);
}
4:05PM
2、写出下面次序的运行结果
main()
{inta,b,c;
ints,w,t;
s=w=t=0;
a=-1;b=3;c=3;
if(c>0)s=a+b;
if(a<=0)
{if(b>0)
if(c<=0)w=a-b;
}
elseif(c>0)w=a-b;
elset=c;
printf(“%d%d%d〞,s,w,t);
}
200
3、写出下面次序的运行结果
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2==0)
continue;
x++;
}
x++;
}
printf(“x=%d\n〞,x);
}
x=8
4、写出下面次序的运行结果
inta=5;intb=7;
main()
{inta=4,b=5,c;
c=plus(a,b);
printf(“A+B=5%d\n〞,c);
}
plus(intx,inty)
{intz;
z=x+y;
return(z);
}
A+B=9
5、写出下面次序的运行结果
main()
{increment();
increment();
increment();
}
increment()
{staticintx=0;
x+=1;
printf(“%d\n〞,x);
}
1
2
3
6、指明下面次序完成的功能
intfac(intn)
{staticintf=1;
f=f*n;
return(f);
}
main()
{intj;
for(j=1;j<=5;j++)
printf(“%d!=%d\n〞,j,fac(j));
}
输出1~5的阶乘
7、写出下面次序的运行结果
#include“stdio.h〞
main()
{
inta[10]={2,4,6,8,10,12,14,16,18,20},*p=a,i;
for(i=0;i<2;i++)
{
printf(“%d〞,*p++);
printf(“%d〞,*++p);
printf(“%d〞,(*p)++);
printf(“\n〞);
}
}
266
71010
三、完满次序
1、下面次序的功能是打印100以内个位数为6且能被3整除的所有数。请完满次序。
main()
{inti,j;
for(i=0;_______;i++)
{j=i*10+6;
if(______)continue;
printf(“%d〞,j);
}
}
i<=9
j%3!=0
2、下面次序的功能是检查一个二维数组是否对称〔即对所有的i跟j都有a[i][j]=a[j][i]〕,请完满次序。
main()
{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};
inti,j,found=0;
for(j=0;j<4;j++)
for(_____;i<4;i++)
if(a[j][i]!=a[i][j]
{_________;break;}
if(found==1)printf(No〞);
elseprintf(“Yes〞);
}
i=j+1
Found=1
3、下面次序的功能是在任意字符串a中将与字符c相当的所有元素的下标值分不存放到整型数组b中。请完满次序。
main()
{chara[80];
intj,b[80],k=0;
gets(a);
for(j=0;a[j]!=’\0’;j++)
if(________){b[k]=j;______;}
for(j=0;j<k;j++)printf(“%d〞,b[j]);
}
a[j]==’c’
k++
4、下面次序的功能是将两个字符串s1跟s2连接起来。请完满次序。
main()
{chars1[80],s2[80];
gets(s1);gets(s2);
conj(s1,s2);
puts(s1);
}
conj(char*p1,char*p2)
{char*p=p1;
while(*p1!=’\0’)_________;
while(*p2!=’\0’){*p1=_______;p1++;p2++;}
_______;
return(p);
}
p1++
*p2
*p1=’\0’
5、下面次序的功能是打算1-3+5-7+……-99+101的值,请完满次序。
main()
{inti,t=1,s=0;
for(i=1;i<101;i+=2)
{________;s=s+t;_______;}
printf(“%d\n〞,s);
}
t=t*i
t=-t/i
6、下面次序的功能是将字符串中的数字字符删除后输出。
voiddelnum(char*s)
{inti,j;
for(i=0,j=0;s[i]!=’\0’;i++)
if(s[i]<’0’_____s[i]>’9’){s[j]=s[i];j++}
_____;
}
main()
{char*item;
gets(item);
delnum(item);
printf(“\n%s〞,_______);
}
||
s[j]=’\0’
item
四、编程
1、编程求1+3+5…+99。
2、输出一个正整数,揣摸是否为素数。
#include<stdio.h>
#include<math.h>
voidmain()
{
intn,flag,i;
scanf("%d",&n);
flag=0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=1;break;
}
}
if(flag==0)
printf("yes\n");
else
printf("no\n");
}
展开阅读全文