}
A、1,5,9, B、1,4,7, C、3,5,7, D、3,6,9, 7. 当执行下面的程序时,如果输入ABC,则输出结果是( )
#include \#include \void main( )
{ char ss[10]=\,2,3,4,5\gets(ss);
strcat(ss,\; printf(\}
A、ABC6789 B、ABC67 C、12345ABC6 D、ABC456789 8.以下程序段的输出结果是( )
char s[ ]= \printf(\;
A、9 B、12 C、13 D、14 9. 下面是对s的初始化,其中不正确的是( )
A、char s[5]={“abc” }; B、char s[5]={‘a’,’b’,’c’}; C、char s[5]=“”; D、char s[5]=”abcde” 10. 以下程序的输出结果是____ abc________________
void main( )
{char s[ ]=\ s[3]= '\\0';
printf(\,s); }
11. 下列程序段的输出结果是___ Hello__________
void main( )
{ char b[]=\; b[5]=0;
printf(\\\n\}
12. 在C语言中,二维数组元素在内存中的存放顺序是___行优先__________
13. 设有定义语句 “ int a[3][4]={{1},{2},{3}} ” ,则a[1][1]值为_______0______,
a[2][1]的值为____0_________
14. 若在程序中用到 “ putchar() ” 函数时,应在程序开头写上包含命令#include
void main() { int k,p;
int s[]={1,-9,7,2,-10,3}; for(p=0,k=p;p<6;p++)
if (s[p]>s[k]) __k=p___________ ;
printf(\\\n\ }
16. 以下程序执行时输入Language Programming
#include
{ char str[30];
scanf(\
printf(\\\n\
17. 以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。 void main()
{ char b[17]={\ int c[64],d,i=0,base=16; long n;
printf(\\\n\ scanf(\
do{c[i]= __ n % 16________;
i++; n=n/base; }while(n!=0);
printf(\\\n\ for (--i;i>=0;--i)
{d=c[i];
printf(\[ ______ i______ ]; }
}
18. 以下数组定义中,错误的是( C )
A、 int a[]={1,2,3}; B、 int a[5]={1,2,3};
C、 int a[3]={1,2,3,4}; D、 int a[5],b; 19.以下数组定义中,正确的是( B )
A、 int n=4,a[n]={1,2,3,4}; B、 int a[][2]={1,2,3,4};
C、 int a[2][]={1,2,3,4}; D、 int a[][]={{1,2},{3,4}}; 20.设有如下定义:int a[8][10];在C中一个整数占用4字节,设a的起始地址为1000,则a[1][1]的地址是( )
A、 1000 B、 1004 C、 1036 D、 1044
21. 有数组定义:int a[ ][3]={1,2,3,4,5,6,7,8,9},则a[1][2]的值是( ) A、 2 B、 5 C、 6 D、 8
22.设已定义 char str[6]={'a','b','\\0','c','d','\\0'}; 执行语句
printf((\r) 后,输出结果为( )
A、 a B、 ab C、 abcd D、 ab\\0cd\\0 23.引用数组元素时,数组元素下标不可以是( )
A、 字符常量 B、 整型变量 C、 字符串 D、 算术表达式 24.下面程序段的运行结果是( )
void main()
{char a[]=\ strcpy(a,b);
printf(\}
A、 123 B、 123d C、 abcd D、 abcd123
25.下面程序段的运行结果是( )
void main()
{char a[]=\ if(a>b) printf(\\\n\else printf(\}
A、 123 B、 编译时出错 C、 abcd D、
第二部分 结构体习题
1. 下面程序的运行结果是___________. void main()
{ struct cmplx{int x; int y;
}cnum[2]={1,3,2,7};
printf(\}
a)0 b)1 c)3 d)6
2. 以下程序的运行结果是__10,x______. struct n { int x; char c; };
void main()
{struct n a={10,'x'}; func(a);
printf(\ }
func(struct n b) { b.x=20; b.c='y'; }
3. 根据下面的定义,能打出字母M的语句是 。运行时出错
struct person { char name[9]; int age; }
struct person class[10]={ 〞John〞,17, 〞Paul〞,19, 〞Mary〞,18,
〞Adam〞,16};
A.printf(〞%c\\n〞,class[3].name); B.printf(〞%c\\n〞,class[3].name[1]); C.printf(〞%c\\n〞,class[2].name[1]); D.printf(〞%c\\n〞,class[2].name[0];
第五章 指针类型数据
习题
一、选择题
1. 变量的指针,其含义是指该变量的________. a)值 b)地址 c)名 d)一个标志
2. 若有说明;int *p,m=5,n;以下正确的程序段的是________. a)p=&n; b)p=&n;
scanf(\ c)scanf(\d)p=&n; *p=n; *p=m;
3. 若有以下定义,则对a数组元素的正确引用是_________. int a[5],*p=a;
a) *&a[5] b) a+2 c) *(p+5) d) *(a+2)
4. 若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为______. a) *(a[i]+j) b) (a+i) c) *(a+j) d) a[i]+j
5. 下面程序段的运行结果是_________. char *s=\ s+=2;printf(\
a)cde b)字符'c' c)字符'c'的地址 d)无确定的输出结果
6. 以下正确的程序段是_________.
a)char str[20]; b)char *p;
scanf(\
c)char str[20]; d)char str[20],*p=str; scanf(\
7. 若有说明语句
char a[]=\ char *p=\
则以下不正确的叙述是________. a)a+1表示的是字符t的地址
b)p指向另外的字符串时,字符串的长度不受限制 c)p变量中存放的地址值可以改变 d)a中只能存放10个字符
8. 下面程序的运行结果是_______. #include
char *s1=\ char *s2=\ s1+=2;s2+=2;
printf(\ }
a)正数 b)负数 c)零 d)不确定的值
9. 已知说明语句int (*p)[ ];,则下列叙述正确的是:______。 A) p是一个指针变量,它指向一个整型一维数组 B) p是一个指针变量,它指向一个整型数据 C) p是一个指针数组 D) 以上都不对
10. 已知有声明语句char s1[10]= "abcde",s3[10];以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是:______。
A)s3=s1,s1=s2,s2=s3;
B)s3[0]=s1[0],s1[0]=s2[0],s2[0]=3[0];
C)strcpy(s3[0],s1[0]),strcpy(s1[0],s2[0]),strcpy(s2[0],s3[0]); D)strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3);