9、已知:int *p;使用如下语句动态申请一个int型的存储单元,应当使用。 p=________malloc(sizeof(int)); A

无忧服务:
娱乐交友:
全职实习:
微信号:school51
扫一下,立即关注
===大学生成长生活平台===
当前位置: >
2013年计算机二级考试C语言课后模拟题九及答案
来源/作者:卫凯 点击次数:1088
  一、单项选择题   1.以下程序的输出结果是( B)。   main( )  {char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;  int i;  i=8;  p=a+i;  printf("%s\n",p-3);  }  A) 6   B) 6789   C) ‘6’    D) 789  2.以下程序的运行结果是( A )。   #include "stdio.h"  main( )  {int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12};  int *p=a+5,*q=NULL;  *q=*(p+5);  printf("%d %d\n", *p, *q);  }  A) 运行后报错   B) 6 6   C) 6 11   D) 5 5  3.若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是( C )。   int t[3][3],*pt[3],k;  for(k=0; k&3; k++) pt[k]=&t[k][0];   A) t[2][0]   B) t[2][2]    C) t[l][2]   D) t[2][l]  4.下面程序把数组元素中的最大值放入a[0]中,则在if语句中的条件表达式应该是( B )。   main( )  {int a[10]={6,7,2,9,1,10,5,8,4,3}, *p=a,  for(i=0; i&10; i++, p++)  if(________) *a=*p;  printf("%d",*a);  }  A) p&a   B) *p&a[0]   C) *p&*a[0]   D) *p[0]& *a[0]  5.以下程序的输出结果是( A )。   #include&stdio.h&  #include&string.h&  main( )  {char *a="abcdefghi";    fun (a); puts(a);  }  fun(char *s)  {int x,    for(x=0, y=strlen(s)-1; x&y; x++, y--)  {c=s[y]; s[y]=s[x]; s[x]=c;}  }  A) ihgfedcba   B) abcdefghi   C) abcdedeba   D) ihgfefghi  6.以下程序的输出结果是( B )。   main( )  {char *s="";int v[4]={0,0,0,0},k,i;  for(k=0;s[k];k++)  {switch(s[k])  {case '1':i=0;  case '2':i=1;  case '3':i=2;  case '4':i=3;  }   v[i]++;  }  for(k=0;k&4;k++) printf("%d ",v[k]);  }  A) 4 2 1 1   B) 0 0 0 8   C) 4 6 7 8   D) 8 8 8 8  7.以下程序的输出结果是( D )。   #include&string.h&  main( )  {char *p1,*p2,str[50]="ABCDEFG";  p1="abcd";p2="efgh";  strcpy(str+1,p2+1);strcpy(str+3,p1+3);  printf("%s",str);str+1表示数组第二个数据B,p2+1指向f,即把fgh复制到BCD的位置,同时复制‘\0’  }  A) AfghdEFG   B) Abfhd   C) Afghd   D) Afgd  8.若有以下定义和语句:  double r=99,*p=&r;  *p=r;  则以下正确的叙述是( D )。   A) 以上两处的*p含义相同,都说明给指针变量p赋值  B) 在"double r=99,*p=&r; "中,把r的地址赋给了p所指的存储单元  C) 语句"*p=r; "把变量r的值赋给指针变量p  D) 语句"*p=r; "取变量r的值放回r中   9.若已定义:  int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,  其中0≤ i ≤9, 则对a数组元素不正确的引用是( D )。   A) a[p-a]   B) *(&a[i])   C) p[i]   D) *(*(a+i))=*a[i]
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  10.下列程序执行后的输出结果是( A )。   void func(int *a, int b[ ])  {b[0]=*a+6;}  main()  {int a, b[5];  a=0; b[0]=3;  func(&a, B);  printf("%d\n", b[0]);  }   A) 6   B) 3   C) 8   D) 9  11.下列程序执行后的输出结果是( B )。   main()  {int a[3][3], *p,  p=&a[0][0];  for(i=0; i&9; i++) p[i]=i+1;  printf("%d\n", a[1][2]);  }   A) 3   B) 6   C) 9   D) 随机数  12.请选出正确的程序段( C )。   A) int *p;   B) int *s,   C) int *s,   D) int *s,  scanf("%d", p); *s=100; char *p, char *p,   s=&k; s=&k;  p=&c; p=&c;  *p='a'; s=p;  *s=1;  13.已知指针p的指向如下图所示,则执行语句 *- -p; 后*p的值是( B )。   a[0] a[1] a[2] a[3] a[4]
50  A) 30   B) 20   C) 19   D) 29  14.设已有定义: char *st="how are you";下列程序段中正确的是( A )。   A) char a[11], *p; strcpy(p=a+1, &st[4]);   B) char a[11]; strcpy(++a, st);  C) char a[11]; strcpy(a, st);     D) char a[ ], *p; strcpy(p=&a[1], st+2);  15.以下程序的输出结果是( C )。   main( )  {int i, x[3][3]={9, 8, 7, 6, 5, 4, 3, 2, 1}, *p=&x[1][1];  for(i=0; i&4; i+=2) printf("%d ", p[i]);  }   A) 5 2   B) 5 1   C) 5 3   D) 9 7  16.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是( B )。   A) i=*p;   B) *p=*&j;   C) i=&j;   D) i=**p;  17.以下定义语句中,错误的是(D )。   A) int a[ ]={1,2};    B) char *a[3];  C) char s[10]="test";   D) int n=5,a[n];  18.下列程序段的输出结果是(A )。   void fun(int *x, int *y)  {printf("%d %d", *x, *y); *x=3; *y=4;}  main()  {int x=1,y=2;  fun(&y, &x);  printf("%d %d", x, y);  }  A) 2 1 4 3   B) 1 2 1 2   C) 1 2 3 4    D) 2 1 1 2
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  19.下列程序的输出结果是( C )。   main()  {char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;  printf("%d",*--p);  }  A) 非法   B) a[4]的地址   C) 5   D) 3  20.下列程序的运行结果是( B )。   void fun(int *a, int *B)  {int *k;  k=a; a=b; b=k;  }  main()  {int a=3, b=6, *x=&a, *y=&b;  fun(x, y);  printf("%d %d", a, B);  }  A) 6 3   B) 3 6   C) 编译出错   D) 0 0  21.下面程序的输出结果是( C )。   main()  {int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;  p=a;  printf("%d\n",*p+9);  }   A) 0   B) 1   C) 10   D) 9  22.假定以下程序经编译和连接后生成可执行文件PROG . EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCD EFGH IJKL&回车&,则输出结果为( D )。   main( int argc, char *argv[ ])  {while(--argc&0) printf("%s", argv[argc]);  printf("\n");  }  来源:考试大  A) ABCDEFGH  B) IJHL  C) ABCDEFGHIJKL  D) IJKLEFGHABCD  23.对于基类型相同的两个指针变量之间,不能进行的运算是( C )。   A) &   B) =   C) +   D) -  24.有以下函数:  char * fun (char *p)  {}  该函数的返回值是( B )。   A) 无确切的值 B) 形参p中存放的地址值  C) 一个临时存储单元的地址   D) 形参p自身的地址值  25.若有以下说明和定义  fun(int *C){…}  main()  {int (*a)()=fun,*b(),w[10],c;  ┆   }   在必要的赋值之后,对fun函数的正确调用语句是( B )。   A) a=a(w);   B) (*a)(&C);   C) b=*b(w);   D) fun (B);  26.有如下说明  int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;  则数值为9的表达式是( B )。   A) *p+9   B) *(p+8)   C) *p+=9   D) p+8  27.有如下程序:  main()  {char ch[2][5]={“6937”,“8254”},*p[2];  int i,j,s=0;  for(i=0;i&2;i++) p[i]=ch[i];  for(i=0;i&2;i++)   for(j=0;p[i][j]&‘\0’;j+=2)   s=10*s+p[i][j]-‘0’;   printf(“%d\n”,s);   }  该程序的输出结果是( C )。   A) 69825   B 63825   C) 6385   D) 693825
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  28.若有以下定义和语句:  char *s1=“12345”,*s2=“1234”;  printf(“%d\n”, strlen(strcpy (s1, s2)));  则输出结果是( A )。   A) 4   B) 5   C) 9   D) 10  29.下面程序的输出结果是( C )。   main( )  {char *s=“121”;  int k=0, a=0, b=0;  do  {k++;  if(k%2= =0) {a=a+s[k]-‘0’;}  b=b+s[k]-‘0’; a=a+s[k]-‘0’;  }  while(s[k+1]);  printf(“k=%d a=%d b=%d\n”, k, a, B);  }  A) k=3 a=2 b=3   B) k=3 a=3 b=2  C) k=2 a=3 b=2   D) k=2 a=2 b=3  30.若有以下的定义:  int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a;  则值为3的表达式是( A )。   A) p+=2,*(p++)  B) p+=2,*++p  C) p+=3,*p++  D) p+=2,++*p  31.以下程序的输出结果是( A )。   #include&stdio.h&  sub1(char a, char B) { c=a; a=b; b=c;}  sub2(char *a, char B) { c=*a; *a=b; b=c;}  sub3(char *a, char *B) { c=*a; *a=*b; *b=c;}  main()  {char a,  a=‘A’; b=‘B’; sub3 (&a, &B); putchar(a); putchar(B);  a=‘A’; b=‘B’; sub2 (&a, B); putchar(a); putchar(B);  a=‘A’; b=‘B’; sub1 (a, B); putchar(a); putchar(B);  }  A) BABBAB    B) ABBBBA    C) BABABA   D) BAABBA  32.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( B )。   A) k=*p1+*p2;   B) p2=k;   C) p1=p2;   D) k=*p1*(*p2);  33.设有如下定义:  int arr[ ]={6, 7, 8, 9, 10}; int *  则下列程序段的输出结果是( D )。   ptr=  *(ptr+2)+=2;  printf(“%d, %d\n”, *ptr, *(ptr+2));  A) 8,10   B) 6,8   C) 7,9   D) 6,10  34.以下程序的输出结果是( D )。   main()  {char a[ ]=“programming”, b[ ]= “language”;  char *p1, *p2;    p1=a; p2=b;  for(i=0; i&7; i++)  if(*(p1+i)= =*(p2+i)) printf(“%c”, *(p1+i));  }  A) gm   B) rg   C) or   D) ga  35.以下程序运行后,输出结果是( C )。   main()  {char *s=“abcde”;  s+=2;  printf(“%ld\n”, s);  }  A) cde   B) 字符c的ASCII码值   C) 字符c的地址   D) 出错  36.以下程序运行后,如果从键盘上输入ABCDE&回车&,则输出结果为( D )。   #include&stdio.h&  #include&string.h&  func(char str[ ])  {int num=0;  while(*(str+num)!=’\0’) num++;  return(num);  }  main()  {char str[10], *p=  gets (p);  printf(“%d\n”, func (p));  }  A) 8   B) 7   C) 6   D) 5
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  37.以下程序执行后,a的值是( C )。   main()  {int a, k=4, m=6, *p1=&k, *p2=&m;  a=p1= =&m;(等于运算符==优先级高于赋值运算符=,即为a=(p1==&m))  printf(“%d\n”, a);  }  A) 4   B) 1   C) 0   D) 运行时出错,a无定值  38.以下程序运行后,如果从键盘上输入:  book&回车&  book&空格&&回车&  则输出结果是( B )。   #include&string.h&  main()  {char a1[80], a2[80], *s1=a1, *s2=a2;  gets(s1); gets(s2);  if(!strcmp(s1, s2)) printf(“*”);  else printf(“#”);  printf(“%d\n”, strlen(strcat(s1, s2)));  }  A) *8   B) #9   C) #6   D) *9  39.若有以下调用语句,则不正确的fun函数的首部是( D )。   main()  { …  int a[50],  …  fun (n, &a[9]);  …  }  A) void fun(int m,int x[ ])   B) void fun(int s,int h[41])  C) void fun(int p,int *s) D) void fun(int n,int a)   40.假定下列程序的可执行文件名为prg . exe,则在该程序所在的子目录下输入命令行:  prg hello good&回车&后,程序的输出结果是( B )。   main(int argc, char *argv[ ])  {  if(argc&=0)  for(i=1; i& i++) printf(“%c”, *argv[i]);  }  A) hello good   B) hg   C) hel   D) hellogood  41.以下程序的输出结果是( D )。   main( )  {char s[ ]=”ABCD”, *p;  for(p=s+1; p&s+4; p++) printf(“%s ”, p);  }  A) ABCD BCD CD D   B) A B C D  C) B C D   D) BCD CD D   42.若已定义:int a[9], *p=a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( C )。   A) p+1   B) a+1   C) a++   D) ++p  43.执行以下程序后,y的值是( C )。   main( )  {int a[ ]={2, 4, 6, 8, 10};  int y=1, x, *p;  p=&a[1];  for(x=0;x&3;x++)  y+=*(p+x);  printf(“%d\n”, y);  }  A) 17   B) 18   C) 19   D) 20  44.下列程序的输出结果是( C )。   main( )  {int a[5]={2, 4, 6, 8, 10}, *p, **k;  p=a;  k=&p;  printf(“%d ”, *(p++));  printf(“%d\n”, **k);  }  A) 4 4   B) 2 2   C) 2 4   D) 4 6  45.下列程序的输出结果是( D )。   #include&string.h&  main( )  {char *p1,*p2,str[50]="xyz";  p1="abcd";p2="ABCD";  strcpy(str+2, strcat(p1+2,p2+1));  printf("%s",str);  }  A) xyabcAB    B) abcABz   C) ABabcz   D) xycdBCD
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  46.设有以下定义:  int a[4][3]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};  int (*prt)[3]=a, *p=a[0];  则下列能够正确表示数组元素a[1][2]的表达式是( D )。   A) *((*prt+1)[2])   B) *(*(p+5))  C) (*prt+1)+2  D) *(*(a+1)+2)   47.阅读程序:   main( )  {int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p;  p=a;  printf("%x\n",p);  printf("%x\n",p+9);  }  该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是( D )。   A) 203   B) 204   C) 1a4   D) 1a6   48.以下程序的输出结果是( C )。   #include&string.h&  #include&stdio.h&  void fun(char *w, int m)  {char s, *p1, *p2;  p1=w; p2=w+m-1;  while(p1&p2)  {s=*p1++; *p1=*p2--; *p2=s;}  }  main( )  {char a[ ]="ABCDEFG";  fun(a, strlen(a));  puts(a);  }  A) GEFDCBA   B) AGADAGA   C) AGAAGAG   D) GAGGAGA  49.以下程序的输出结果是( C )。   #include&stdio.h&  void fun(int *s)  {static int j=0; www.E  do  s[j]+=s[j+1];  while (++j&2);  }  main( )  {int k, a[10]={1, 2, 3, 4, 5};  for(k=1; k&3; k++) fun (a);  for(k=0; k&5; k++) printf (“%d”, a[k]);  }  A) 34756   B) 23445   C) 35745   D) 12345  50.请读程序:   #include&stdio.h&  char fun(char *C)  {if(*c&=‘Z’&&*c&=‘A’) *c-=‘A’-‘a’;  return *c;  }  main( )  {char s[81], *p=s;  gets (s);  while(*p)  {*p=fun(p); putchar(*p); p++;}  putchar(‘\n’);  }  若运行时从键盘上输入OPEN THE DOOR&回车&,则上面程序的输出结果为(B )。   A) oPEN tHE dOOR   B) open the door  C) OPEN THE DOOR   D) Open The Door  51.以下程序的输出结果是( B )。   #include&string.h&  main( )  {char *s1="AbCdEf",*s2="aB";  s1++;s2++;  printf("%d\n",strcmp(s1, s2));  }  A) 正数   B) 负数   C) 零   D) 不确定的值  52.下面各语句行中,能正确进行赋字符串操作的语句行是( C )。   A) char st[4][5]={“ABCDE”};  B) char s[5]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’};  C) char *s; s= “ABCDE”;  D) char *s; scanf(“%s”,s);  53.以下程序的输出结果是( C )。   fun(int *s, int n1, int n2)  {int i, j,  i=n1; j=n2;  while(i&j)  {t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;  i++; j--;  }  }  main( )  {int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, i, *p=a;  fun (p, 0, 3); fun (p, 4, 9); fun (p, 0, 9);  for(i=0; i&10; i++) printf("%d ", *(a+i));  printf(“\n”);  }  A) 0 9 8 7 6 5 4 3 2 1   B) 4 3 2 1 0 9 8 7 6 5  C) 5 6 7 8 9 0 1 2 3 4   D) 0 9 8 7 6 5 1 2 3 4  54.下面函数的功能是( B )。   sss (char *s, char *t)  {while((*s)&&(*t)&&(*t= =*s)) s++, t++;  return(*s-*t);  }  A) 求字符串的长度    B) 比较两个字符串的大小  C) 将字符串s复制到字符串t中   D) 将字符串s连接到字符串t中
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  55.以下程序段给数组所有的元素输入数据,则以下正确答案为( A )。   main()  {int a[10], i=0;  while (i&10) scanf(“%d”, );  …  }  A) a+(i++)  B) &a[i+1]  C) a+i  D) &a[++i]  56.在下列叙述中,正确的一条是( B )。   A) 语句int *pt中的*pt是指针变量名  B) 语句int *p=a;等价于int *p; p=&a[0];  C) 运算符*和&都是取变量地址的运算符  D) 已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值  57.下列语句执行后的结果是( A )。   y=5; p=&y; x=*p++;  A) x=5,y=5   B) x=5,y=6   C) x=6, y=5   D) x=6, y=6  58.在下列语句中,其含义为“p为带回一个指针的函数,该指针指向整型数据”的定义语句是( A )。   A) int *p();   B) int **p;   C) int (*p)();   D) int *p;  59.在下面关于指针的说法中,错误的一条是( B )。   A) 变量的指针就是变量的地址  B) 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量  C) 一个指针变量只能指向同一个类型的变量  D) 指针变量中只能存放地址   60.在下列程序中,输出结果与其它程序不同的是( D )。   A) main()  {int a[10];    for(i=0;i&10;i++) scanf(“%d”,&a[i]);  printf(“\n”);  for(i=0;i&10;i++) printf(“%d”,a[i]);  }  B) main()  {int a[10];    for(i=0;i&10;i++) scanf(“%d”,&a[i]);  printf(“\n”);  for(i=0;i&10;i++) printf(“%d”,*(a+i));  }  C) main()  {int a[10];  int i, *p;  for(i=0;i&10;i++) scanf(“%d”,&a[i]);  printf(“\n”);  for(p=a;p&(a+10);p++) printf(“%d”,*p);  }  D) main()  {int a[10];  int i, *p;  for(i=0;i&10;i++) scanf(“%d”,&a[i]);  printf(“\n”);  for(i=0;i&10;i++) printf(“%d”,*(p+i));  }   61.以下程序的输出结果是( D )。   sub(int *s, int y)  {static int t=3;  y=s[t]; t--;  }  main()  {int a[ ]={1, 2, 3, 4},  int x=4;  for(n=0; n&4; n++)  {sub(a, x); printf(“%d”, x); }  printf(“\n”);  }  A) 1234   B) 3333   C) 4321   D) 4444   62.以下程序的输出结果为( B )。   #idefine FORMAT “%u, %u”  main()  {int a[3][4]={1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23};  printf(“\n”);  printf(FORMAT, **a, *a[0]);  printf(FORMAT, *(a[0]+1), *&a[0][1]);  printf(FORMAT, a[1][1], *(*(a+1)+1));  }  A) 3,3 5,5 9,9   B) 1,1 3,3 9,9  C) 1,1 3,3 5,5   D) 5,5 7,7 9,9  63.以下程序的输出结果为(D )。   f(char *s)  {char *p=s;  while(*p!=‘\0’) p++;  return(p-s);  }  main()  { printf(“%d\n”, f(“”)); }  A)    B) 7   C) 1   D) 8
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  64.以下程序的输出结果为( C )。   move(int array[6], int n, int m)  {int *p, array_  array_end=*(array+n-1);  for(p=array+n-1;p&p--)  *p=*(p-1);  *array=array_  m--;  if(m&0) move (array, n, m);  }  main()  {static int number[6]={1, 2, 3, 4, 5, 6};  int m=4,  move(number, 6, m);  for(j=0;j&5;j++)  printf(“%d,”, number[i]);  printf(“%d”, number[5]);  }  A) 1,2,3,4,5,6   B) 6,5,4,3,2,1  C) 3,4,5,6,1,2   D) 6,1,2,3,4,5  65.在下列叙述中,正确的一条是( B )。   A) 以下程序运行结果为Computer and c:  main()  {char str[4];  str=“Computer and c”;  printf(“%s\n”, str);  }  B) 下面两种表示方式等价  (1) int fun(int x,int y)  (2) int fun(x,y)  int x,y;  C) 若输入1、2,以下程序的运行结果为12  main()  {int *p,i,a[2];  p=a;  for(i=0;i&2;i++) scanf(“%d”,p++);  for(i=0;i&2;i++,p++) printf(“%d”,*p);  }  D) 以下程序的运行结果为3  main()  {int *p,a[5]={1,3,4,5,6};  p=a;  printf(“%d”,*p++);  }  66.以下程序的输出结果是( A )。   point(char *pt);  main()  {char b[4]={‘a’, ‘c’, ‘s’, ‘f’}, *pt=b;  point(pt);  printf(“%c\n”, *pt);  }  point(char *p)  {p+=3;  }  A) a   B) c  www.E  C) s   D) f  67.以下程序的输出结果为( A )。   void move(int *pointer)  {int i, j,  for(i=0; i&3; i++)  for(j=i; j&3; j++)  {t=*(pointer+3*i+j);  *(pointer+3*i+j)=*(pointer+3*j+i);  *(pointer+3*j+i)=t;  }  }  main()  {int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, *p,  p=&a[0][0];   move(p);  for(i=0; i&3; i++)  printf(“%d%d%d”, a[i][0], a[i][1], a[i][2]);  }  A)    B)    C)    D)   68.以下程序的输出结果是( A )。   sub(int x, int y, int *z)  {*z=y-x+2;}  main()  {int a, b,  sub(16, 7, &a); sub(9, a, &B); sub(a, b, &C);  printf(“%d, %d, %d\n”, a, b, C);  }  A) –7,-14,-5  B) –7,-16,-9  C) –7,-12,-9  D) –9,-14,-5  69.变量p为指针变量,若p=&a,下列说法不正确的是( D )。   A) &*p==&a  B) *&a==a  C) (*p)++==a++  D) *(p++)==a++   70.若输入10,以下程序的输出结果是( B )。   #define MAX 50  main()  {int i, k, m, n, num[MAX], *p;  scanf(“%d”, &n);  p=  for(i=0; i&n; i++)  *(p+i)=i+1;  i=0; k=0; m=0;  while(m&n-1)  {if(*(p+i)!=0) k++;  if(k= =3)  {*(p+i)=0; k=0; m++;}  i++;  if(i= =n) i=0;  }  while(*p= =0) p++;  printf(“%d\n”, *p);  }  A) 10  B) 4  C) 50  D) 60  71.以下程序的输出结果是( B )。   main()  {char *alpha[5]={“a”, “bc”, “def”, “1”, “23”}, **p;    p=  for(i=0; i&3; i++, p++) printf(“%s”, *p);  printf(“\t”);  p=p-3;  for(i=0; i&3; i++, p++) printf(“%c\t”,**p);  }  A) abcdef d e f  B) abcdef a b d  C) abcdef 1 23  D) defabc 1 23
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  二、填空题   1.下列程序的输出结果是 GDABC 。   #include&string.h&  main( )  {char b[30],*chp;  strcpy(&b[0],"GH");  strcpy(&b[1],"DEF");  strcpy(&b[2],"ABC");  printf("%s\n",B);  }  2.下列程序的字符串中各单词之间有一个空格,则程序的输出结果是 How does she 。   #include&string.h&  main( )  {char strl[ ]="How do you do",*p1=strl;  strcpy (strl+strlen(strl)/2,"es she");  printf("%s\n",pl);  }  3.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。   a[0] a[1] a[2] a[3] a[4]
  (1)若p已指向存储单元a[1]。通过指针p给s赋值,使s指向最后一个存储单元a[4]的语句是 s=p+3 。   (2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 2 。   4.以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。   #include&stdio.h&  main()  {char *p, s[6];    p=s;  gets (p);  n=*p-'0';  while( *(++p) !='\0') n=n*8+*p-'0';  printf("%d\n", n);  }   5.设有以下程序:  main()  {int a, b, k=4, m=6, *p1=&k, *p2=&m;  a=(pl= =&m);  b=(*p1)/(*p2)+7;  printf("a=%d\n", a);  printf("b=%d\n",   B);  }  执行该程序后,a的值为 0 ,b的值为 7 。   6.下列程序的输出结果是 0 。   void fun(int *n)  {while((*n)--);  printf("%d", ++(*n));  }  main()  {int a=100;  fun (&a);  }   7.以下程序的输出结果是 10 。   main()  {int arr[ ]={30, 25, 20, 15, 10, 5}, *p=  p++;  printf("%d\n", *(p+3));  }   8.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 *(p+5) 。  int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;  9.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。  strlen (char a[ ], char b[ ])  {int num=0, n=0;  while (*(a+num)!= '\0' ) num++;  while (b[n]){*(a+num)=b[n]; num++; n++ ;}   return(num);  }   10.函数void fun(float *sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。  void fun(float *sn, int n)  {float s=0.0, w, f= -1.0;  int i=0;  for(i=0; i&=n; i++)  {f= -1 *f;  w=f/ (2*i+1);  s+=w;  }  *sn =  }  11.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。  int add(int x,int y, int * z)  { *z =x+y;}  12.以下fun函数的功能是:累加数组元素中的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。请填空。  fun(int b[ ],int n,int *x)  {int k,r=0;  for(k=0;k&n;k++) r= r+b[k] ;  *x =r;  }  13.以下函数的功能是:把两个整型指针变量所指的存储单元中的内容进行交换。请填空。   exchange(int *x,int *y)  {  t=*y; *y= *x ; *x= t ;  }   14.以下程序的输出是 49 。  main()  {int a[10]={19,23,44,17,37,28,49,36},*p;  p=a;  printf(“%d\n”,(p+=3)[3]);  }  15.下面程序的输出结果是 024 。  #define MAX 3  int a[MAX];  main()  {fun1();fun2(a);printf(“\n”);}  fun1()  {int k,t=0;  for(k=0;k&MAX;k++,t++) a[k]=t+t;  }  fun2(int b[])  {  for(k=0;k&MAX;k++) printf(“%d”,*(b+k));  }
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
  16.下面程序的输出结果是 ABCDCD 。  char b[]=“ABCD”;  main()  {char *  for(chp=b; * chp+=2) printf(“%s”, chp);  printf(“\n”);  }  17.以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。  #include&stdio.h&  main()  {char str[81],*    for(i=0;i&80;i++)  {str[i]=getchar();  if(str[i]==‘\n’)  }  str[i]= '\0' ;  sptr=  while(*sptr) putchar( *sptr++ );  }  18.fun1函数的调用语句为:fun1(&a,&b,&C);它将三个整数按由大到小的顺序调整后依次放入a、b、c三个变量中,a中放最大数。请填空。  void fun2(int *x, int *y)  {  t=*x; *x=*y; *y=t;  }  void fun1(int *pa,int *pb,int *pC)  {if(*pc&*pB) fun2( pc,pb );  if(*pa&*pC) fun2( pa,pb );  if(*pa&*pB) fun2( pa,pc );  }  19.以下函数用来在w数组中插入数x,w数组中的数已按由小到大的顺序存放,n所指存储单元中存放数组中数据的个数,x插入后数组中的数仍有序。请填空。   void fun(char *w,char x,int *n)  {int i,p;  p=0;  w[*n]=x;  while(x&w[p]) p++ ;  for(i=*n;i&p;i--) w[i]= w[i-1] ;  w[p]=x;  ++*n;  }  20.阅读程序:  main()  {char str1[]=“how do you do”, str2[10];  char *p1=str1, *p2=str2;  scanf(“%s”, p2);  printf(“%s ”, p2);  printf(“%s\n”, p1);  }  运行上面的程序,输入字符串HOW DO YOU DO,则程序的输出结果是 HOW how do you do 。  21.下面程序的输出结果是 SO 。  main()  {char *p[]={“BOOL”, “OPK”, “H”, “SP”};    for(i=3;i&=0;i--,i--) printf(“%c”,*p[i]);  printf(“\n”);  }  22.下面程序的输出结果是 17 。  funa(int a,int B)  {return a+b;}  funb(int a,int B)  {return a-b;}  sub(int(*t)(),int x,int y)  {return((*t)(x,y));}  main()  {int x,(*p)();  p=  x=sub(p,9,3);  x+=sub(funb,8,3);  printf(“%d\n”, x);  }  23.下面程序的输出结果是 XYZA 。  #include&stdio.h&  void fun(char *a1,char *a2,int n)  {  for(k=0;k&n;k++)  a2[k]=(a1[k]-‘A’-3+26)%26+‘A’;  a2[n]=‘\0’;  }  main()  {char s1[5]=“ABCD”, s2[5];  fun (s1, s2, 4);  puts(s2);  }  24.下面程序的输出结果是 7 1 。  void as(int x,int y,int *cp,int *dp)  {*cp=x+y;  *dp=x-y;  }  main()  {int a=4,b=3,c,d;  as(a,b,&c,&D);  printf(“%d %d\n”,c,D);  }  25.下面程序的输出结果是 eybdooG 。  #include&stdio.h&  main()  {static char b[]=“Goodbye”;  char *chp=&b[7];  while(--chp&=&b[0]) putchar(*chp);  putchar(‘\n’);  }  26.若输入:this test terminal,以下程序的输出结果为:terminal test this。填空补充以下程序。  #include&string.h&  #define MAXLINE 20  main()   {  char *pstr[3],str[3][MAXLINE];  for(i=0;i&3;i++) pstr[i]=str[i];  for(i=0;i&3;i++) scanf(“%s”,pstr[i]);  sort(pstr);  for(i=0;i&3;i++) printf(“%s\n”,pstr[i]);  }  sort( char *pstr [3] )  {int i,j;  char *p;  for(i=0;i&3;i++)  {for(j=i+1;j&3;j++)  {if(strcmp(*(pstr+i),*(pstr+j))&0)  {p=*(pstr+i);  *(pstr+i)= *(patr+j) ;  *(pstr+j)=p;  }  }  }  }  27.以下程序利用指针法将两个数按从小到大的顺序输出来。  main()  {int a,b, *p1,*p2 , p ;  printf(“input a, b:”);  scanf(“%d%d”, &a,&B);  p1=&a ;  p2=&b;  if(a&B)  {p=p1; p1=p2; p2=p;}  printf(“a=%d b=%d\n”,a,B);  printf(“max=%d min=%d\n”, *p1,*p2 );  }  28.以下程序的输出结果是 8 。  fun(int n,int *s)  {int f1,f2;  if(n==1||n==2) *s=1;  else  {fun(n-1,&f1);  fun(n-2,&f2);  *s=f1+f2;  }  }  main()  {  fun(6,&x);  printf(“%d\n”,x);  }  29.下面的程序通过函数average计算数组中各元素的平均值,请填空。  float average(int *pa,int n)  {  float avg=0.0;  for(i=0;i&n;i++)  avg=avg+ *(pa+i) ;  avg= avg/n ;    }  main()  {int i,a[5]={2,4,6,8,10};    mean=average(a,5);  printf(“mean=%f\n”,mean);  }  30.以下程序将字符串s1中的所有与字符串str1相同的子串替换成字符串str2,并将替换后的新串存于字符数组s2中。  #include&stdio.h&  void replace(char *s1,char *s2,char *str1,char *str2)  {char *t0,*t1,*t2;  while( *s1 )  {for(t0=s1,t1=str1;(*t1!=‘\0’&& *t0=*t1 );t0++,t1++);  if(*t1!=‘\0’) *s2++ = *s1++ ;  else  {for(t1=str2;*t1!=‘\0’;) *s2++ = *t1++ ;  s1=t0 ;  }  }  *s2=‘\0’;  }  main()  {static char s1[]=“abcef ababcd abab.”, s2[25];  replace (s1, s2, “abc”, “XYZ”);  printf(“%s\n”, s2);  }  31.以下语句的输出结果是 hELLO! 。  char s[80],*sp=“HELLO!”;  sp=strcpy (s, sp); s[0]=‘h’; puts(s);
  推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
  冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
  欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
:5:5:7:027-:6::5:1::1
:0:9:029-:::2::025-::2
:::5:8::8::::
::::::::::010-
:5:::023-:5::::22:50}

我要回帖

更多关于 sql语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信