上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
2006年广西区计算机等级考试二级C语言笔试试题及答案
作者:未知 申领版权
2010年12月12日 共有 2053 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    2006年广西区计算机等级考试二级C语言笔试试题及答案
    第一卷(共70分) 
    第一部分:基础知识(20题,共40分) 
    1、一个C程序总是从( )开始执行。 
    A.程序的第一条执行语句 
    B.主函数 
    C.子程序 
    D.主程序 
    2、在C语言中,int, char和short int三种类型变量所占用的内存大小是( )。 
    A.均为2个字节 
    B.由用户自己定义 
    C.由所用机器的字长决定 
    D.是任意的 
    3、若有以下类型说明语句: 
    char a; int b; float c; short int d; 
    则表达式(c*b a)*d的结果类型是( )。 
    A.char 
    B.int 
    C.double 
    D.float
    4、若有说明语句: 
    int w=1,x=2,y=3,z=4; 
    则表达试w>x?w:z>y?z:x的值是( ) 
    A.4 
    B.3 
    C.2 
    D.1 
    5、设x,y 为int型变量,则执行下列语句后,y的值是( ) 
    x=5; 
    y=x *x ; 
    y=--y*--y; 
    A.529 
    B.2401 
    C.1209 
    D.625 
    6、C语言中函数返回值的类型是( ) 
    A.return语句中的表达式类型 
    B.调用函数的类型 
    C.总是int型 
    D.定义函数时所指定的函数类型
    7、凡是在函数中未指定存储类别的变量,其隐含的存储类别是( ) 
    A.自动 
    B.静态 
    C.外部 
    D.寄存器 
    8、在源程序的一个文件中定义的全局变量的作用域是( ) 
    A.本文件的全部范围 
    B.该程序的全部范围 
    C.一个函数的范围                      D.从定义该变量的位置开始至该文件的结束 
    9、以下不正确的描述是( ) 
    A.break语句只能用于循环语句和switch语句 
    B.在switch语句中,break语句的作用也可用continue语句来替代 
    C.在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行 
    D.在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环 
    10、若有宏定义 #define mod(x,y) x%y 
    则执行以下程序段后,输出为( ) 
    int z,a=15,b=100; 
    z=mod(b,a); 
    printf(“%d\n”,z ); 
    A.11 
    B.10 
    C.6 
    D.宏定义不合法
    
    11、若有说明语句: char s1[4]=”12”; char *ptr;  则执行下列语句后输出为( ) 
    ptr=s1; 
    printf(“%c\n”,*(ptr 1)); 
    A.字符‘2’ 
    B.整数2 
    C.字符串“12” 
    D.字符‘1’ 
    12、若有以下语句 
    int x[]={2,4,6,8,10,12},*ptr; 
    ptr=x; 
    则对数组元素的正确引用为( ) 
    A.x 
    B.x[6] 
    C.*(--ptr) 
    D. *( ptr) 
    13、若有说明语句:int i,x[3][4];则不能实现将x[1][1]的值赋给变量i的语句是( ) 
    A.i=*(*(x 1) 1) 
    B.i=*(*(x 1)) 
    C.i=x[1][1] 
    D.i=*(x[1] 1) 
    14、若已定义了如下的共用体类型变量x,则x所占用的字节数(在16位PC机条件下)为( ) 
    union data{  int i; 
    char ch; 
    double f; 
    }x; 
    A.7 
    B.11 
    C.8 
    D.10 
    15、如下说明语句: 
    enum A {A0=1,A1=3,A2,A3,A4,A5}; 
    enum A B; 
    执行: B=A3; 
    printf(“%d\n”,B); 
    输出的是( ) 
    A.5 
    B.3 
    C.2 
    D.编译时出错 
    16、while(!x)中的条件表达式(!x)与下面条件( )等价。 
    A.x==0 
    B.x==1 
    C.x==0|| x==1 
    D.x!=0 
    17、有以下说明语句,则对结构体变量s的成员num的不正确引用是( ) 
    struct student{ int num; 
    int age; 
    }s,*p; 
    A.s.num 
    B.*p.num 
    C.p->num 
    D.(*p).num 
    18、说明语句int (*p)[10]定义了p是( ) 
    A.指针数组 
    B.指向数组的指针 
    C.返回值为整型的函数指针 
    D.指向整型数的指针 
    19、下面对文件操作函数描述正确全面的是( ) 
    int n_read=fread(int fd,char *buf,int n); 
    A.从文件fd中读n个字节存放在buf中 
    B.从文件fd中读n个整数存放在buf中 
    C.从文件fd中读n个字节存放在buf中,并将n赋给n_read 
    D.从文件fd中读n个字节存放在buf中,并将实际读入的字节数和出错代码赋给n_read 
    20、C语言的编译系统对宏命令是( ) 
    A.在程序运行时进行代换处理的 
    B.在程序连接时进行处理的 
    C.与程序中其他C语句同时进行编译的 
    D.在对源程序其他成分正式编译之前进行处理的
    
    第二部分:简单程序(12题,共30分) 
    21、运行下面的程序,其输出是( ) 
    main() 
    {   int a[]={2,4,6,8,10},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 
    
    22、运行下面的程序,其输出是( ) 
    main() 
    {   int i=1; 
    while(i<19) 
    if(i %5!=3) continue; 
    else printf(“M”,i); 
    printf(“\n”); 
    } 
    
    A.2 5 7 9 11 13 15 17     B.3 6 9 12 15 18 
    
    C.4 9 14 19       D.3 8 13 17 19 
    
    23、运行下面的程序后,其正确的输出是( ) 
    main() 
    {   static int a[5]={7,2,8,4,5}; 
    static int *pa[5]={&a[0], &a[1], &a[2], &a[3], &a[4]}; 
    int **p,i; 
    p=pa; 
    for(i=0;i<5;i ) 
    {  printf(“%d\t”,**p 2); 
    p ;} 
    printf(“\n”); 
    } 
    
    A.9 4 10 6 7 
    B.7 2 8 4 5 
    C.7 4 10 4 5 
    D.2 3 4 5 6 
    
    24、下面程序运行后,其输出是( ) 
    main() 
    {  int i; 
    int n=2; 
    while( n<20) 
    {i=1; 
    while( i<n)
    { if(n%i= =0)   break; 
    if(i= =n-1)   printf(“%d\t”,n); 
    } 
    printf(“\n”); 
    } 
    } 
    
    A.2 5 7 9 13 17 19 
    B.3 5 7 11 13 17 19 
    C.2 3 5 7 11 13 17 19 
    D.3 5 7 11 13 17 20 
    
    
    25、下面程序运行后,其输出是( ) 
    main() 
    {  int i,j,k; int func(); 
    i=1,j=2,k=3; 
    printf(“%d\n”,func((j =k,j ),(i,i , i))); 
    } 
    int func(int x,int y) 
    {   int z; 
    z=x%y; 
    return(z); 
    } 
    
    A.2 
    B.0 
    C.1 
    D.3 
    
    26、下面程序运行后,其输出是( ) 
    int x,y; 
    one() 
    {int a,b; 
    a=25,b=10; 
    x=a-b; y=a b; 
    } 
    main() 
    {  int a,b; 
    a=9,b=5; 
    x=a b;y=a-b; 
    one(); 
    printf(“%d,%d\n”,x,y); 
    } 
    
    A.14,4 
    B.14,35 
    C.15,35 
    D.15,4 
    
    27、下面程序运行后,其输出是( ) 
    #include 
    void printd(int i); 
    main() 
    {   int n=123; 
    printd(n); 
    } 
    void printd(int n) 
    {  int i; 
    if(n<0) 
    {n=-n;putchar(‘-‘);} 
    putchar(n%10 ’0’); 
    if((i=n/10)!=0) 
    printd(i); 
    } 
    
    A.123 
    B.321 
    C.3 
    D.1 
    
    28、下面程序运行后,其输出是( ) 
    struct sample{  int a,b; 
    char *ch; 
    }; 
    void f1(struct sample parm); 
    main() 
    {struct sample arg; 
    arg.a=1000;arg.b=100;arg.ch=”abcd”; 
    f1(arg); 
    } 
    void f1(struct sample parm) 
    {  parm.a =parm.b; 
    parm.ch[2]=’x’; 
    printf(“%d\n”,parm.a); 
    printf(“%s\n”,parm.ch); 
    } 
    
    A.1000 
    B.1100 
    C.1100 
    D.100 
    
    abcd                abcd                 abxd                abcd
    
    29、下面程序运行后,其输出是( ) 
    main() 
    {static char s[30]=”abcdefg”; 
    static char t[]=”abcd”; 
    int i,j; 
    i=0; 
    while(s[i]!=’\0’) 
    i ; 
    j=0; 
    while(t[j]!=’\0’) 
    {s[i j]=t[j]; 
    j ;} 
    s[i j]=’\0’; 
    printf(“%s\n”,s); 
    } 
    
    A.abcdabcdefg   B.abcdefg   C.abcd  D.abcdefgabcd 
    
    30、下面程序运行后,其输出是( ) 
    main() 
    {  int a[4][4],i,j,k; 
    for(i=0;i<4;i ) 
    for(j=0;j<4;j ) 
    a[i][j]=i j; 
    for(i=1;i<4;i ) 
    for(j=i 1;j<4;j ) 
    { k=a[i][j]; 
    a[i][j]=a[j][i]; 
    a[j][i]=k; 
    } 
    for(i=0;i<4;i ) 
    {printf(“\n”); 
    for(j=0;j<4;j ) 
    printf(“%d ”,a[i][j]);} 
    } 
    A. 0 1 2 3      B.0 1 2 3        C. 0 1 2 3        D.3 2 1 0 
    1 2 3 4          1 2 5 4            1 2 4 2            4 3 2 1 
    2 3 4 5          2 3 4 5            2 3 5 3            5 4 3 2 
    3 4 5 6          3 4 5 6            3 4 6 4            6 5 4 3 
    31、下面程序运行后,其输出是( ) 
    main() 
    { void sub(); 
    char s[10]=”a program”; int num=4; 
    sub(s,0,num-1); sub(s,num,6); sub(s,0,6); 
    printf(“%s\n”,s); 
    } 
    void sub(char *s,int num1,int num2) 
    { char t,*p; 
    p=s num2;s=s num1; 
    while(s<p)
    {t=*s; *s=*p; *p=t; s ; p--;} 
    } 
    A.program    B.gram pro     C.pro gram     D.ogra pram 
    32、运行下面程序,从键盘输入四个字符xyz#,其输出是( ) 
    #include "stdio.h" 
    main() 
    {  void recursion(); 
    recursion(); 
    } 
    void recursion() 
    { char c; 
    c=getchar(); 
    putchar(c); 
    if(c!=’#’) 
    recursion(); 
    putchar(c); 
    } 
    
    A.xyz#       B.xyz#xyz#        C.xyz##zyx       D.xyzxyz 
    
    
    第二卷(共30分) 
    说明:程序填空题,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。每空栏3分,两大题共10个空栏,全对得30分。 
    试题一: `
    下面的程序是将一个十六进制数字字符串转换成与它等价的十进制整数值并输出。十六进制数的字符是从0到9和a到f或A到F。主函数负责收集字符,并判别它们是否是十六进制字符,函数htoi负责转换工作。 
    #include  
    #define maxline 100 
    #define  eof   -1 
    #define  yes    1 
    #define  no     0 
    int htoi(); 
    main() 
    { int c,i,isdigit; 
    char t[maxline]; 
    i=0; 
    isdigit=no; 
    while((c=_______________)!=eof&&i<maxline-1
    {  if(c>=’0’&&c<=’9’||c>=’a’&&c<=’f’|| c>=’A’&&c<=’F’) 
    { isdigit=yes; 
    t[i ]=___________; 
    } 
    else  if(isdigit= =yes) 
    { isdigit=no; 
    t[i]=’\0’; 
    printf(“%d”,______________); 
    i=0; 
    } 
    } 
    } 
    int htoi(char *s) 
    {  int i,n; 
    n=0; 
    for(i=0;s[i]!=’\0’;i ) 
    { if(s[i]>=’0’&&s[i]<=’9’)  n=n*16 s[i]-______________; 
    if(s[i]>=’a’&&s[i]<=’f’)  n=n*16 s[i]-‘a’ 10; 
    if(s[i]>=’A’&&s[i]<=’F’)  n=n*16 s[i]-‘A’ 10;  
    } 
    return___________; 
    } 
    试题二: 
    以下程序的功能是应用近似公式计算e的近似值
    计算每项分数的值,共取nmax项之和作为e 的近似值。 
    近似公式: 
    e  =1 x x 2/2!  x3 /3! ……  x nmax-1/(nmax-1)! 
    float f2(int n) 
    { if(n= =1) 
    return 1; 
    else return____________________; 
    } 
    float f1(float x,int n) 
    { int i;float j=______________; 
    for(i=1;___________;i ) 
    j=j*x; 
    return j; 
    } 
    #define nmax  20 
    main() 
    { float x,exp=1.0;int n; 
    printf(“input x value:”); 
    scanf(“%f”,&x); 
    printf(“%f\n”,x); 
    for(n=1;n< nmax;n )
    exp=______________; 
    printf(“x=%f,exp(x)=%f\n”,x,_______________);
    
    
    
    
    

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》