Discuz教程网

(C语言)复习题-求全解

[复制链接]
authicon 猪头 发表于 2011-1-5 04:45:18 | 显示全部楼层 |阅读模式
一单选题
1.下列程序的运行结果是(     )。
  1. #include <stdio.h>
  2.   void main( )
  3.   {
  4.     int i=3;
  5.       printf("%d, ",i++);
  6.       printf("%d, ",i);  
  7.       printf("%d, ",++i);
  8.            printf("%d\n",i);
  9.    }
复制代码

(A) 3,4,5,5   (B) 3,3,4,4   (C) 4,3,3,3   (D) 4,4,3,4
2.下列选项中不合法的常量是(     )。
(A) ˊ\6ˊ  (B) ˊ\286ˊ   (C) " "   (D) "\286"
3.设int x=1,y=1;则表达式(!x||- - y)的值是(      )。
(A) -1  (B) 1   (C) 2   (D) 0
4.设int x=11,则表达式(x + +*1/3)的值是(     )。
(A) 4  (B) 11   (C) 3   (D) 12
5.若a=2,b=3,c=4,则表达式 a= =3 和 a=3的值分别为(     )。
(A) 0和3  (B) 1和3   (C) 3和3   (D) 0和0
6.下列选项中对于以下程序段描述正确的是(     )。
int k=10;
while(k!=0) k=k-1;
(A) 循环体执行了10次           
(B) 循环体是无限循环
(C) 循环体语句一次也不执行
(D) 循环体语句执行了一次
7.下列选项中与while(!x)中的!x等价的条件是(     )。
(A) x==1  (B) x!=1   (C) x==0   (D) x!=0
8.一个函数的形式参数的作用域是(     )。
(A) main主函数  (B) 整个程序   (C) 从定义处到文件尾   (D) 形参所在的函数体
9.下列程序的运行结果是(     )。
  1. int m=14,n=26;
  2. max(int x,int y)
  3. {
  4.     int max;
  5. max=x>y?x:y;
  6. return(max);
  7. }
  8. main()
  9. {
  10.   int m=32;
  11.   printf("%d",max(m,n));
  12. }
复制代码

(A) 32  (B) 14   (C) 24   (D) 26
10.C语言共用体类型变量在程序运行期间(     )。
(A) 所有成员一直驻留在内存中   
(B) 部分成员驻留在内存中
(C) 没有成员驻留在内存中
(D) 只有一个成员驻留在内存中
11.下列选项中能对二维数组a进行正确说明和初始化的语句是(     )。
(A) int  a( )(3)={ ( 1, 0 ), ( 2, 5 ) }
(B) int  a[2][]={ { 3, 2 }, { 5, 6 } }
(C) int  a(2)( )={ ( 1, 1 ), ( 2, 5 ) }
(D) int  a[][2]={ { 2, 1 }, { 6, 7 } }
12.设fp是指向某个文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是(     )。
(A) 非零值  (B) EOF   (C) -1   (D) NULL
13.下列程序运行结果是(      )。
  1. #define MIN(a,b) (a)<(b)?(a):(b)
  2. void main()
  3. {int a=10,b=15,c;
  4. c=10*MIN(a,b);
  5. printf("%d\n",c);
  6. }
复制代码

(A) 10  (B) 100   (C) 15   (D) 150
14.getchar()函数可以向终端输入一个(     )。
(A) 整型变量表达式值  (B) 字符   (C) 字符串   (D) 实型变量值
15.若运行以下程序时输入:-2<回车>,则程序的输出结果是(     )。
  1. main()
  2. { int a,b;
  3.       scanf("%d",&a);
  4.       b=(a>=0)?a:-a;
  5.       printf("b=%d",b);
  6. }
复制代码

(A) b=-2  (B) b=2   (C) b=0   (D) 结果出错
16.下列程序的运行结果是(     )。
  1. void del(char s[],char c)
  2. {
  3.   int i,j;
  4.   for (i=j=0;s!='\0';i++)
  5.        if(s!=c)
  6.           s[j++]=s;
  7.            s[j]='\0';
  8. }
  9. main()
  10. {
  11.   char s[]="ABCDA";
  12.   del(s,'A');
  13.   printf("%s",s);
  14. }
复制代码

(A) ABCDA  (B) ABCD   (C) BCD   (D) AA
17.下列程序的运行结果是(     )。
  1. main()
  2. {
  3.      char *str="liaoning\nshenyang\0sydx";
  4.    puts(str);
  5. }
复制代码

(A) liaoning
(B) liaoning
       shenyang
(C) shenyang
(D) 0sydx shenyang
18.已知字母A的ASCII码为十进制数65,则下面程序段的运行结果为(     )。
char  ch1,ch2;
ch1= ˊAˊ+5-3;   ch2= ˊAˊ+6-3;
printf("%c, %d\n", ch1,ch2);
(A) 67,D  (B) B,C    (C) 不确定值   (D) C,68  
19.下列程序的运行结果为(     )。
  1. #include<stdio.h>
  2. void main()
  3. {
  4.    int a=2,b=-1,c=2;
  5.        if (a<b)
  6.        if (b<0) c=0;
  7.        else c++;
  8.    printf("%d\n",c);
  9. }
复制代码

(A) 2  (B) 0   (C) 1   (D) 3
20.若有如下语句:float  *p1,*p2;则其中float所指的是(     )。
(A) p1的类型  (B) p1和p2所能指向变量的类型   (C) p2的类型   (D) *p1和*p2的类型  
21.能正确表示x的取值范围在[5,10]和[-10,-5]之间的表达式为(     )。
(A) (x<=-10)||(x>=-5)&&(x<=5)||(x>=10)
(B) (x>=-10)&&(x<=-5)||(x>=5)&&(x<=10)
(C) (x>=-10)&&(x<=-5)&&(x>=5)&&(x<=10)
(D) (x<=-10)||(x>=-5)||(x<=5)||(x>=10)
22.C语言中,数组名代表(     )。
(A) 数组全部元素的值  (B) 数组第一个元素的值   (C) 数组元素的个数   (D) 数组的首地址
23.若整型变量a、b、c、d中的值依次为:1、4、3、2,则条件表达式a>b?a:c>d?c:d的值是(     )。
(A) 1  (B) 2   (C) 3   (D) 4
24.下列程序的运行结果是(     )。
  1. # include<stdio.h>
  2. void main()
  3. {
  4.   int a[3][3],*p,i;
  5. p=&a[0][0];
  6.   for(i=0;i<9;i++)p=i;
  7.   for(i=0;i<3;i++)printf("%d",a[1]);
  8. }
复制代码

(A) 258  (B) 147   (C) 036   (D) 678
25.下列选项中,全为C语言的基本数据类型的是 (     )。
(A) 数组 结构体 共用体  (B) 整型 数组 指针   (C) 整型 实型 字符型   (D) 指针 逻辑型 空类型
二填空题(在记事本中作答,答案前注明小题标号,并按照系统提示保存)
26.输入10个员工的工号和工资,并打印出工资最高者的工号和工资。
#include<stdio.h>
void main()
  1. {
  2.       int num[10],i,*p,wage[10], max;
  3.       for(i=0;    【1】    ;i++) scanf("   【2】   ",num+i,wage+i);
  4.       max=wage[0];                                    
  5.       p=wage+1;
  6.       while(p<wage+10)
  7.       {
  8. if(*p>    【3】    ) max=*p;
  9.      【4】    ;
  10.       }
  11.       for(i=0;i<10;i++)
  12.       if(*(wage+i)==max)               
  13.    printf("num[%3d]=%2d;wage[%2d]=%3d\n",i,    【5】    ,i,wage);
  14. }
复制代码

27.用4~8之间不同的3个数构成一个三位数,下列程序将统计出共有多少种组合方法。
  1. #include<stdio.h>
  2. void main()
  3. { int a,b,c,    【6】    ;
  4.       for(a=4;    【7】    ;a++)
  5.          for(b=4;b<=8;    【8】    )
  6.             if(a==b)    【9】    ;
  7.             else
  8.                 for(c=4;c<=8;c++)
  9.                       if(c!=a&&c!=b)    【10】    ;
  10.          printf("%d\n",count);
  11. }
复制代码

         
三编程题
28.编写程序,将键盘上输入的一个阿拉伯数字(0123456789)改写成对应的中文字(零壹贰叁肆伍陆柒捌玖),然后显示在屏幕上输出。
备注:按系统提示目录保存试题文件,每道试题建立一个文件夹,文件夹名为题目编号。文件夹内的文件命名参照提示所给的程序架构。
例:第一题的试题文件名为“1”,文件名为“Test1.C”



上一篇:C++经典入门详细教程(初学者必备)
下一篇:重写代码的惨重代价【转载】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-6-19 11:04

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表