C语言--数组和指针练习题(共23页).doc
《C语言--数组和指针练习题(共23页).doc》由会员分享,可在线阅读,更多相关《C语言--数组和指针练习题(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上若当堂没做完,下周四之前上交也可。至用户名和密码:stu语言程序设计练习题数组一、选择题77、以下对一维数组a的正确说明是dA、char a(10);B、int a ;C、int k=5,ak; D、char a =a , b , c;78、若有说明语句:int a24;,则对a数组元素的正确引用是aA、a03B、a04C、a22D、a22+179、以下能对二维数组y进行初始化的语句是bA、static int y2 =1,0,1, 5,2,3;B、static int y 3=1,2,3, 4,5,6;C、static int y24=1,2,3, 4,5 , 6;
2、D、static int y 3=1,0,1,0, , 1,1;80、若有说明语句:int y 4=0,0; 则下面叙述不正确的是dA、数组y的每个元素都可得初值0B、二维数组y的行数为1C、该说明等价于int y 4=0;D、只有元素y00和y01可得到初值0,其余元素均得不到初值081、以下各组选项中,均能正确定义二维实型数组s的选项是cA、float s34;B、float s(3,4); float s 4; float s =0;0; float s3 =1,0; float s34;C、 float s34; D、float s34; static float s 4=0,0; f
3、loat s3 ;auto float s 4=0,0,0; float s 4;82、若有说明语句:int a 3=1,2,3,4,5,6,7,8; ,则a数组的行数为aA、3B、2C、无确定值D、183、若二维数组y有m列,则在yij前的元素个数为BA、j*m+iB、i*m+jC、i*m+j-1 D、i*m+j+184、下面程序中有错误的行是D1、 main( )2、 3、 int x3=1;4、 int k;5、 scanf(%d, &x);6、 for (k=1; kstr2)B、if (strcmp(str1, str2)C、if (strcmp(str2, str1)0)D、if
4、(strcmp(str1, str2)0)89、下面程序段的运行结果是cchar x5=a, b, 0, c, 0;printf(%s, x);A、abB、abC、abcD、abc90、有两个字符数组a,b,则以下能正确为a,b进行赋值的语句是dA、gets(a, b);B、scanf(%s%s, &a, &b);C、getchar(a); getchar(b); D、gets(a); gets(b);91、有字符数组s180和s280,则以下能正确对s1, s2进行输出的语句是bA、puts(s1, s2)B、printf(%s, %s, s1, s2);C、putchar(s1, s2);
5、 D、puts(s1), puts(s2);92、以下程序段的运行结果是cchar a7=abcdef;char b4=ABC;strcpy(a, b);printf(%c, a5);A、B、0C、eD、f93、以下描述正确的是dA、两个字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串STOP与STOP相等D、字符串That小于字符串The94、以下对字符数组的描述中错误的是cA、字符数组中可以存放字符串B、字符数组中的字符串可以整体输入、输出C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值D、不可以用关系运算符对字符数组中的字符串进行比
6、较95、若有语句:char s110, s210=books,则能将字符串books赋给数组s1的正确语句是bA、s1=books;B、strcpy(s1, s2);C、s1=s2; D、strcpy(s2, s1);96、以下printf语句的输出结果是Aprintf(%dn, strlen(school);A、7 B、6C、存在语法错误D、不定值97、下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#include main( ) char s80; int i, j; gets(s); for (i=j=0; si!=0; i+) if (si!=c) a sj=0; puts
7、(s);A、sj+=siB、s+j=siC、sj=si;D、sj=si;98、当运行以下程序时候,从键盘输入:abcdef则下面程序的运行结果是d#include #define N 6main( ) char ch1N; int k=0; for ( ; kN; ch1k=getchar( ), k+) ; for (k=0; kN; k+) putchar(ch1k); A、abcdefB、aC、bD、abbcccdddef99、下面程序的运行结果是b#include #include main( ) char x80=AB, y80=LMNP;(98题答案:) int n=0; strc
8、at(x, y); while (xn+!=0) yn=xn; puts(y); A、LBB、ABLMNPC、ABD、LBLMNP二、填空题50、在C语言中,二维数组元素在内存中的存放顺序是按行储存。51、若有定义:double x35;,则x数组中行下标的下限为2,列下标的上限为4。52、若二维数组a有m列,则计算任一元素aij在数组中相对位置的公式为i*m+j+1。(设a00是数组的第一个元素)53、若有定义:int a34=1, 2, 0, 4, 6, 8, 10;, 则初始化后,a12得到的初值是0,a21得到的初值是6。54、若有说明:char s20;,如果想从键盘上把字符串:Th
9、is is a book. 输入到数组s中,应当调用的函数是gets(),函数调用语句的形式是gets(s)。55、请写出下面各printf语句的结果。、printf(%sn, strcat(school, student);schoolstudent、printf(%dn, strlen(CHINA)+strlen(C);6、printf(%dn, strcmp(The, The);056、根据下面说明和要求,完成对应的填空。、若有:char str110,str2 =student; 能把str2中的字符串赋给str1的串函数调用语句是strncpy(str1,str2)、若有:char
10、str120=a good, str2 =student; 能把str2中的字符串接到str1中的字符串后面的串函数调用语句是strncat57、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。main( ) int a23=1, 2, 3, 4, 5, 6; int b32, i, j;printf(array a:n);for (i=0; i=1; i+) for (j=0; j=2; j+) printf(%5d, aij); bji=aij; printf(n); printf(array b:n);for (i=0; i=2; i+) for (j=0; j=1
11、; j+) printf(%5d, bij); printf(n); 58、下面程序可求出矩阵a的两条对角线上的元素之和。请填空。main( ) static int a33=1, 3, 6, 7, 9, 11, 14, 15, 17;int sum1=0, sum2=0, i, j;for (i=0; i3; i+) for (j=0; j3; j+) if (i= =j) sum1+=aij;for (i=0; i=0; j-) if (i+j= =2) sum2+=aij;printf(sum1=%d, sum2=%dn, sum1, sum2);59、下面程序的功能是将二维数组a中每个
12、元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b。请填空。例如: main( ) static int a23=4, 5, 6, 1, 2, 3;int b23, i, j; printf(array a:n);for (i=0; i=1; i+) for (j=0; j3; j+) printf(%5d, aij); If(j=1)bij+1=aij; printf(n); for (i=0; i=2; i+) bi0=ai2;printf(array b:n);for (i=0; i2; i+) for (j=0; j3; j+)printf(
13、%5d, bij); if(j=3)printf(“n”); 60、下面程序的功能是检查一个二维数组是否对称(即对所有的aij=aji)。请填空。main( ) static int a44=1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4;int i, j, found=0;for (j=0; j4; j+)for (i=0; i4; i+)if (aij!=aji) found=1; break; if (found) printf(No); else printf(Yes);61、下面程序段将输出computer,请填空。char c =Its a computer;for
14、 (i=0; ci!=0; i+) if(i=8)continue; printf(%c, cj); 62、以下程序的功能是对从键盘输入的两个字符串进行比较,并输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为these和there,则输出是1。请填空。#include main() char s1100, s2100;int x, y;printf(nInput string1:n);gets(s1);printf(nInput string2:n);gets(s2);x=0;while (s1x= =s2x)&(s1x!=n )x+;y=s1x-s2x;pri
15、ntf(%dn, y);63、以下程序的输出结果是1110main( ) int x6, a=0, b, c=14;do xa=c%2; a+;c=c/2;while(c=1);for (b=a-1; b=0; b-) printf(%d, xb);printf(n);64、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值);否则输出-1。#include #include main( ) char c=a, t50;int n, k, j;gets(t);n=strlen(t);for (k=0; kn; k+)if (tk=
16、) j=k; break; else j=-1;printf(%d, j);65、下面程序的功能是把以下给定的字符按其矩阵格式读入数组str1中,并输出行列号之和是3的数组元素。请填空。main( ) char str143=A, b, C, d, E, f, G, h, I, j, K, l;int x, y, z;for (x=0; x4; x+)for (y=0; y3; y+) z=x+y;if (z=3)printf(%cn, strxy);66、下面程序的功能是输出两个字符串中较短串的长度。请填空。#include main( ) char str120, str220;int i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 指针 练习题 23
限制150内