C)a>10&&a<15D)!
(a<=10)&&!
(a>=15)
2.若inta=3,b=4,c=5;则表达式值为0的是()
A)‘a’&&’b’B)a<=bC)a||b+c&&b-cD)!
((a
c||1)
3.若charc=’A’;则c=(c>=’A’&&c<=’Z’)?
(c+32):
c的值是()
A)‘A’B)‘a’C)‘Z’D)‘z’
4.设a=3,b=4,执行“printf(”%d,%d”,(a,b),(b,a));”语句的输出是()
A)3,4B)4,3C)3,3D)4,4
5.使用“scanf(”x=%f,y=%f”,&x,%y);”语句,要使x,y均为1.25,正确的输入是()
A)1.251.25B)1.251.25
C)x=1.25,y=1.25D)x=1.25y=1.25
6.设有inti=010,j=10;则printf(”%d,%d\n”,++i,j--);的输出是()
A)11,10B)9,10C)010,9D)10,9
7.设a,b为字符型变量,执行“scanf(”a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B’,从键盘上的正确输入是()
A)’A’‘B’B)’A’,‘B’C)A=A,B=BD)a=A,b=B
8.设x,y,z,t均为int型变量,则执行以下语句后,t的值为()
x=y=z=1;t=++x||++y&&++z;
A)不定值B)2C)1D)0
9.执行以下语句后x的值是()
a=b=c=0;x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A)34B)4C)35D)3
10.下面的程序段所表示的数学函数关系是()
y=-1;
if(x!
=0)if(x>0)y=1;elsey=0;
A)y=-1(x<0);0(x=0);1(x>0)
B)y=1(x<0);-1(x=0);0(x>0)
C)y=0(x<0);-1(x=0);1(x>0)
D)y=-1(x<0);1(x=0);0(x>0)
11.下列语句中,错误的是()
A)while(x=y)5;B)dox++while(x==10);
C)while(0);D)do2;while(a==b);
12.循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);的循环次数为()
A)无限次B)不确定次C)4次D)3次
13.若有整型变量i,j;则以下程序段中内循环体的执行次数为()
for(i=5;i;i++)
for(j=0;j<4;j++){...}
A)20B)24C)25D)30
14.假定a和b为int型变量,则执行以下语句后b的值为()
a=1;b=10;
do{b-=a;a++;}
while(b--<0);
A)9B)-2C)-1D)8
15.设x和y均为int型变量,则执行下面的循环后y的值为()
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A)2B)4C)6D)8
16.在C语言中,下列说法中正确的是()
A)不能使用”do语句while(条件)”的循环
B)”do语句while(条件)”的循环必须使用”break”语句退出循环
C)”do语句while(条件)”的循环中,当条件为非0时结束循环
D)”do语句while(条件)”的循环中,当条件为0时结束循环
二、填空题:
1.结构化程序设计规定的三种基本结构是结构,结构和结构。
2.若有定义语句”inta=25,b=14,c=19;”,下面程序段被执行的结果是。
if(a++<=25&&b--<=2&&c++)
printf(“***a=%d,b=%d,c=%d\n”,a,b,c);
else
printf(“###a=%d,b=%d,c=%d\n”,a,b,c);
3.以下两条if语句可合并成一条if语句为。
if(a<=b)x=1;
elsey=2;
if(a>b)printf(“****y=%d\n”,y);
elseprintf(“####x=%d\n”,x);
4.设i,j,k均为型变量,则执行如下语句后,k的值为。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
5.下列程序的功能是输入一个正整数,判断是否为素数,若为素数输出1,否则输出0,填空完成程序。
main()
{
inti,x,y;
scanf(“%d”,&x);
for(i=2;i<=x/2;i++)
if(){y=0;break;}
printf(“%d\n”,y);
}
三、程序分析题:
1.阅读程序,写出运行结果
main()
{
intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
=15)if(!
ok1)x=1;
elseif(ok2)x=10;
elsex=-1;
printf(“%d\n”,x);
}
2.阅读程序,写出运行结果
main()
{
inty=9;
for(;y>0;y--)
if(y%3==0){printf(“%d”,--y);cintinue;}
}
四、程序设计题:
1.编程序,输入一个整数,输出其符号(若≥0,输出1;若≤0,输出-1)。
2.编程序,输入三个数,输出其中最小值。
3.输入一个正整数,是否既是5又是7的整倍数,若是,则输出Yes;否则输出No。
4.编程序,输入10个整数,统计并输出其中正数、负数和零的个数。
5.打印输出“九九乘法口诀表”。
数组
一、选择题:
1.若有以下说明,则数值为4的表达式是()
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc=‘a‘,d,g;
A)a[g–c]B)a[4]C)a[‘d’-‘c’]D)a[‘d’–c]
2.设有定义:
chars[12]={“string”};则printf(“%d\n”,strlen(s));的输出是()
A)6B)7C)11D)12
3.下列语句中,正确的是()
A)chara[3][]={‘abc’,‘1’};B)chara[][3]={‘abc’,‘1’};
C)chara[3][]={‘a’,“1”};D)chara[3][]={“a”,“1”};
4.合法的数组定义是()
A)inta[]={“string”};B)inta[5]={0,1,2,3,4,5};
C)chara={“string”};D)chara[]={0,1,2,3,4,5};
5.语句”printf(“%d\n”,strlen(“ats\no12\1\\”));”的输出结果是()
A)11B)10C)9D)8
6.函数调用”strcat(strcpy(str1,str2),str3)”的功能是()
A)将字符串str1复制到str2中后再连接到str3之后
B)将字符串str1连接到str2之后再复制到str3之后
C)将字符串str2复制到str1中后再将字符串str3连接到str1之后
D)将字符串str2连接到str1之后再将字符串str1复制到str3中
7.设有如下定义,则正确的叙述为( )
charx[]={“abcdefg”};
chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
A)数组x和数组y等价B)数组x的长度大于数组y的长度
C)数组x和数组y长度相同 D)数组x的长度大于数组y的长度
二、填空题:
1.设有定义语句”staticinta[3][4]={{1},{2},{3}};”,则a[1][1]的值为(),a[2][1]的值为()
2.若杂程序中用到putchar()函数时,应在程序开头写上包含命令(),若在程序中用到strlen()函数时,应在程序开头写上包含命令(),
3.下面程序的功能是输出a数组中最大元素的下标,请填空。
main()
{
intk,p;
inta[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(a[p]>a[k])
printf(“%d\n”,k);
}
4.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include“string.h”
main()
{
inti,j,k;
charstr[]={“1234567”};
for()
{k=str[i];str[i]=str[j];str[j]=k;}
}
三、程序分析题:
1.阅读程序,写出运行结果:
main()
{
staticinta[][3]={9,7,5,3,1,2,4,6,8};
inti,j,s1=0,s2=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j)s1=s1+a[i][j];
if(i+j==2)s2=s2+a[i][j];
}
printf(“%d,%d\n”,s1,s2);
}
2.说明下列程序的功能。
main()
{
inti,j;
floata[3][3],b[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{scanf(“%f”,&x);a[i][j]=x;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)b[j][i]=a[i][j];
for(i=0;i<3;i++)
{printf(“\n”);
for(j=0;j<3;j++)printf(“%f”,b[i][j]);
}
}
3.写出下列程序的运行结果。
main()
{
chara[]={‘*’,’*’,’*’,’*’,’*’};
inti,j,k;
for(i=0;i<5;i++)
{
printf(“\n”);
for(j=0;j
for(k=0;k
}
}
四、程序设计题:
1.编程序,输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。
2.编程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编程序,输入两个字符串(<40个字符),连接后输出(要求:
不能使用系统提供的函数)
4.输入一个字符串,将其中的所有大写字母转化为小写字母,将所有小写字母转化为大写字母,然后输出。
5.编程序,输入一个整型数据,输出各位数字之和。
指针
一、选择题:
1.设有定义”inta=3,b,*p=&a;”,则下列语句中使b不为3的语句是()
A)b=*&a;B)b=*&p;C)b=a;D)b=*a;
2.设指针x指向的整型变量值为25,则printf(“%d\n”,++*x);的输出是()
A)23B)24C)25D)26
3.若有说明:
inti,j=7,*p=&i;则与i=j;等价的语句是()
A)i=p;B)*p=*&j;C)i=&j;D)i=**p;
4.若有说明:
inta[10],*p=a;对数组元素的正确引用是()
A)a[p]B)p[a]C)*(p+2)D)p+2
5.下面各语句行中,能正确进行赋字符串操作的语句是()
A)chara[5]={“ABCDE”};B)chars[5]={‘A’,’B’,’C’,;D’,’E’};
C)char*s;s=“ABCDEF”;D)char*s;scanf(“%s”,&s);
6.若有以下定义,则不能表示a数组元素的表达式是()
inta[10],*p=a;
A)*pB)a[10]C)*aD)a[p-a]
7.若有以下定义,则值为3的表达式是()
inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A)p+=2,(p++)B)p+=2,++pC)p+=3,*p++D)p+=2,++*p
8.执行语句”chara[10]={“abcd”},p=a;”后,*(p+4)的值是()
A)”abcd”B)’d’C)’\0’D)不能确定
9.设有定义语句”int(*ptr)[10];”,其中ptr的是()
A)10个指向整型变量的指针
B)指向10个整型变量的函数指针
C)一个指向具有10个元素的一维数组的指针
D)具有10个指针元素的一维数组
10.若有以下定义,则数值为4的表达式是()
intw[3][4]={{0,1},(2,4),{5,8}},(*p)[4]=w;
A)*w[1]+1B)p++,*(p+1)C)w[2][2]D)p[1][1]
11.若有下面的程序片段,则对数组元素的错误引用是()
inta[12]={0},*p[3],**pp,i;
for(i=0;i<3;i++)p[i]=&a[i+4];
pp=p;
A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)
12.若有如下定义和语句,则输出结果是()
int**pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(“%d,%d\n”,*p,**pp);
A)10,20B)10,10C)20,10D)20,20
13.若有以下定义和语句,则对w数组元素的非法引用是()
intw[2][3],(*pw)[3];pw=w;
A)*(w[0]+2)B)*pw[2]C)pw[0][0]D)*(pw[1]+2)
二、填空题:
1.“*”称为运算符,“&”称为运算符。
2.若两个指针变量指向同一个数组的不同元素,可以进行减法和运算。
3.设inta[10],p=a;则对a[3]的引用可以是p[]和*(p)。
4.若d是已定义的双精度变量,再定义一个指向双精度变量d的指针变量p的语句是。
5.&后跟变量名,表示该变量的,*后跟指针变量名,表示该指针变量,&后跟指针变量名,表示该指针变量的。
6.设有char*a=“ABCD”,则printf(“%s”,a)的输出是;而printf(“%c”,*a)的输出是。
7.设有以下定义和语句,则*(*(p+2)+1)的值为。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
8.以下程序的功能是从键盘上输入若干字符(以回车键作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。
请填空
#include“ctype.h”
#include“stdio.h”
main()
{
charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();if(str[i]==‘\n’)break;}
str[i]=;
sptr=str;
while(*sptr)putchar(*sptr);
}
三、程序分析题:
1.阅读下列程序,写出程序的输出结果
main()
{
char*a[6]={“AB”,“CD”,“EF”,“GH”,“IJ”,“KL”};
inti;
for(i=0;i<4;i++)printf(“%s”,a[i]);
printf(“\n”);
}
2.阅读下列程序,写出程序的主要功能
main()
{
inti,a[10],*p=&a[9];
for(i=0;i<10;i++)scanf(“%