printf(“%d,%d,%d”,a,b,c);
}
2.阅读程序,写出运行结果
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);
}
3.阅读程序,写出运行结果
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.编程序,求出所有各位数字的立方和等于1099的3位整数。
5.编程序,输入10个整数,统计并输出其中正数、负数和零的个数。
6.编程序显示ASCII码0x20~0x6f的十进制数值及其对应字符。
7.打印输出“九九乘法口诀表”。
数组
一、选择题:
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;}
}
5.以下程序可把输入的十进制长整型以十六进制的形式输出,请填空。
main()
{
charb[17]={“0123456789ABCDEF”};
intc[64],d,i=0,base=16;
longn;
printf(“Enteranumber:
\n”);
scanf(“%ld”,&n);
do{c[i]=;i++;n=n/base;}
while(n!
=0);
printf(“Transmitenewbase:
\n”);
for(--i;i>=0;--i)
{d=c[i];printf(“%c”,b);}
}
三、程序分析题:
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()
{
staticchara[]={‘*’,’*’,’*’,’*’,’*’};
inti,j,k;
for(i=0;i<5;i++)
{
printf(“\n”);
for(j=0;j
for(k=0;k
}
}
4.说明下列程序的功能:
main()
{
inti,j;
floata[3][3],b[3][3],c[3][3],x;
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++)
{scanf(“%f”,&x);b[i][j]=x;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<3;i++)
{
printf(“\n”);
for(j=0;j<3;j++)printf(“%f”,c[i][j]);
}
}
四、程序设计题:
1.编程序,输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。
2.编程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编程序,输入两个字符串(<40个字符),连接后输出(要求:
不能使用系统提供的函数)
4.输入一个3×5的整数矩阵,输出其中最大值、最小值和它们的下标。
5.输入一个字符串,将其中的所有大写字母转化为小写字母,将所有小写字母转化为大写字母,然后输出。
6.编程序,输入一个整型数据,输出每位数字,其间用逗号分隔。
7.编程序,输入一个字符串,将其中所有的大写英文字母+3,小写英文字母-3,然后再输出加密后的字符串。
8.编程序,将上题中加密的字符串解密后输出。
指针
一、选择题:
1.设有定义”inta=3,b,*p=&a;”,则下列语句中使b不为的语句是()
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]={1,2,3,4,5,6,7,8,9,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;