收藏 分销(赏)

C语言试题1.doc

上传人:快乐****生活 文档编号:3066187 上传时间:2024-06-14 格式:DOC 页数:11 大小:36KB 下载积分:8 金币
下载 相关 举报
C语言试题1.doc_第1页
第1页 / 共11页
C语言试题1.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
《高级程序设计基础(C语言)》考试题一 一、选择题(共20题,每题2分)   1.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。 if (a<b) if(c<d) x=1; else if (a<c)    if (b<d) x=2;    else x=3; else x=6; else x=7; A) 1                     B) 2                     C) 3                     D)  6 2.以下程序的输出结果是()。 main() {   int x=2, y=-1, z=2;        if (x<y)               if (y<0)  z=0;               else  z=z+1;        printf(“%d\n”, z); } A) 3                     B) 2                     C) 1                     D) 0 3.若运行时给变量x输入12,则以下程序的运行结果是()。 main() {   int x, y;        scanf(“%d”, &x);        y=x>12?x+10:x-12;        printf(“%d\n”, y); } A) 0                     B) 22                   C) 12                   D) 10     4.设有程序段   int  k=10;   while  (k=0)  k= k—1;   则下面描述中正确的是() A)  while循环执行10次      B)循环是无限循环 C)循环体语句一次也不执行    D)循环体语句执行一次 5.下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。         #include <stdio.h>      main()     {int  i,sum= 0;        for(i=1;i<=50;i++) if(  ()  )  sum+=i;       printf("%d",sum);     }     A) (int)(i/7)==i/7                       B) (int)i/7==i/7 C)  i%7= 0                              D)  i%7==0 6.下面程序段的运行结果是     a=1;b= 2;c=2; while(a<b<c)  {   t= a; a= b;  b=t;  c- -; } printf("%d,%d,%d",a,6,c); A)1,2,0    B)2,1,0    C)1,2,1    D)2,1,1 7.下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空          #include <stdio.h>     main()    {int  a,b,c,i;      a=c=0;     for(i=0;i<=10;i+=2)     { a+=i;      ()         ;      c+=b; }      printf("偶数之和=%d\n",a);           printf("奇数之和=%d\n",c-11), } A)b=i--         B) b=i+1              C)b=i++        D)b=i-1 7.下面程序段:       for  (t=1;  t<=100;t++)   { scanf("%d",&x);       if(x<0)  continue;       printf("%3d",t); }    A) 当x<0时整个循环结束    B) x>=0时什么也不输出    C) printf函数永远也不执行    D)最多允许输出100个非负整数 8.下面程序的运行结果是:             #include "stdio.h"  main() {int i; for(i=1;i<=5;i++) {if (i%2) printf("*"); else continue; printf("#"); } printf("#");} A) *#*#$   B)   #*#*#*$   C) *#*#$   D)#*#*$ 9.设有程序段 int k=10;  while(k=5)  k=k-1;                则下面描述正确的是               A)while循环执行10次          B)是死循环 C)循环语句一次也不执行         D)循环体语句执行一次     10.当已存在一个abc.txt文件时,执行函数fopen(“abc.txt”, “r+”)的功能是(   )。        A.打开abc.txt文件,清除原有内容        B.打开abc.txt文件,只能写入新的内容        C.打开abc.txt文件,只能读取原有内容        D.打开abc.txt文件,可以读取和写入新的内容 11.fopen()函数的mode取值”r”和”w”时,它们之间的差别是(    )。        A.”r”可向文件写入,”w”不可向文件写入        B.”r”不可向文件写入,”w”可向文件写入        C.”r”不可由文件读出,”w”可由文件读出        D.文件不存在时,”r”建立新文件,”w”出错 12.以下对一维数组a的正确说明是(        ) (A)int a(10);                     (B)int n=10,a[n]; (C)int n; scanf(“%d”,&n);    int a[n];                    (D)#define SIZE 10    int a[SIZE]; 13.对以下说明语句的正确理解是(        ) int a[10]={6,7,8,9,10};  (A)将5个初值依次赋给a[1]至a[5]  (B)将5个初值依次赋给a[0]至a[4]  (C)将5个初值依次赋给a[6]至a[10]  (D)因为数组长度与初值的个数不相同,所以此语句不正确 14.下面程序的运行结果是(        ) char c[5]={‘a’,’b’,’\0’,’c’,’\0’};   printf(“%s”,c);  (A)ab        (B)abc         (C)abc+乱码       (D)ab\0c\0 15.对两个数组a和b进行如下初始化 char a[]=”ABCDEF”; char b[]={‘A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是   (        )  (A)a与b数组完全相同           (B)a与b长度相同  (C)a和b中都存放字符串         (D)a数组比b数组的长度长 16.下面是对s的初始化,其中不正确的是(        )  (A)char s[5]={“abc”};             (B)char s[5]={‘a’,’b’,’c’};  (C)char s[5]=””;                  (D)char s[5]=”abcdef”; 17.以下程序运行的结果是(      ) char s[6]; s=”abcd”;   printf(“%s\n”,s); (A)”abcd”              (B)abcd          (C)abcd+乱码              (D)编译出错 18.若有说明语句char u[]=”Microsoft”,则数组的大小是(       )  (A)100        (B)80          (C)10          (D)9 19.以下不正确的定义语句是 (      )  (A)double y[5]={2.0,4.0,6.0,8.0,10.0};            (B)int y[5]={0,1,3,5,7,9};  (C)char c[]={‘1’,’2’,’7’,’4’,’5’};        (D)char c[]={“abcdf”}; 20.当执行下面的程序时,如果输入ABC,则输出结果是(        ) A) ABC6789             B) ABC67           C) 12345ABC6         D) ABC456789 #include "stdio.h" #include "string.h" main() { char ss[10]="1,2,3,4,5"; gets(ss); strcat(ss, "6789"); printf("%s\n",ss); }   二、分析程序题(共10题,每题3分)   1、以下程序的输出结果是 ()          main() {    int x=10,y=10;    printf("%d %d\n",x--,--y); }   2、以下程序的输出结果是 () main()  {   int a=32, b=66;      printf("%c\n", a+b);   }       3、若运行时输入:16<回车>,则以下程序的运行结果是(    )。 #include <stdio.h> main() {       int age;     printf(“Input your age : “);     scanf(“%d”, &age);     if (age>=18)        printf(“your $4.5yuan/hour”);     else        printf(“Your $3.0yuan/hour”); }   4、以下程序的执行结果是__________。 typedef struct{      int y[4];      char z[8]; } MYTYPE; main(){    MYTYPE a = { {2,3,5,6},"Tom"};    puts(a.z); }   5、有如下结构体类型说明:  struct test {   char  a[20] ;   double b;   struct test *next ;  } ;  如果head ,p,q都是该类型的指针变量且三者按head-p-q的顺序构成了一个链表,现在要求我们仅用两条条语句从该链表中删除p并释放p所占的空间,那么这两条语句正确的形式是________________。   6、以下程序的输出结果是(            )。   #include <stdio.h>   func(int a)   {     int b;     for(b=0; b<a; b++)        printf("*");   }   main()   {     int a = 2;     func(a);   }   7、下面程序的运行结果是(      ) #include<stdio.h> main() { int  n;   for(n=0;n<4;n++)   {  printf("%d%d%d%d",n,n,n,n);    } }   8、下面程序的运行结果是(      ) #include<stdio.h> main() { int  n=1,i=1;   while(i<6)   {  n=n*i;      i=i+2;    }    printf("n=%d",n); }   9、下面程序的运行结果是(      ) #include<stdio.h> main() { int  i;   for(i=4;i<=8;i++)   {  switch(i/j)      {  case 0:         case 1:printf("*");break;         case 2:printf("#");       }    }    }   10、下面程序的运行结果是(      ) #include<stdio.h> main() { int  a[8]={1,3,5,7,9,11,13,15},i,j,k;   for(i=0,j=7;i<j;i++,j--)   {   k=a[i];a[i]=a[j];a[j]=k;    }     k=a[2]+a[3];   printf("%d",k); }   三、编写程序题(共3题,每题10分) 1、编程对从键盘输入的任意两整数x和y进行求x3+y2 - 3x/y的值   2、编写一个程序,要求程序的功能是:从键盘输入20个整数,存入一个数组中,然后输出该数组中的最小值。其中确定最小值的下标的操作在detect()函数中实现。请编写函数detect()的代码,并在主函数中调用它,以正确完成本题要求的功能。     3、某百货公司采用购物打折扣的方法来促销商品,顾客一次性购物的折扣率是: 1、少于800元不打折; 2、800元以上且少于1200元者,按九折优惠; 3、1200元以上且少于2200元者,按九折优惠; 4、2200元以上且少于3200元者,按八五折优惠; 5、3200元以上者,按八折优惠。 请编写程序根据输入的购物金额,计算并输出顾客实际的付款金额。   第一套考试题 参考答案 一、              选择题 1、B 2、B 3、A 4、C 5、D 6、A 7、B 7、D 8、?? 9、B 10、D 11、B 12、D 13、B 14、A 15、D 16、D 17、D 18、C 19、B 20、A   二、程序分析题 1、10,9 2、b 3、your$3.0yuan/hour 4、Tom 5、head->next=p->next;free(p); 6、** 7、0000111122223333 8、n=15 9、题目有问题 10、20   三、编程题 1 #include <stdio.h> main() {        int x,y,result;          printf("input x and y:");        scanf("%d%d",&x,&y);          result=x*x*x+y*y-3*x/y;          printf("result=%d",result); }   2 #include <stdio.h> #define N 30 int detect(int p[],int n); main() {        int a[N],i,min_id;          printf("input %d integers:",N);        for(i=0;i<N;i++)        {               scanf("%d",&a[i]);        }          min_id=detect(a,N);          printf("min number is %d",a[min_id]); }   int detect(int p[],int n) {        int i,min_id;          min_id=0;        for(i=1;i<n;i++)        {               if(p[min_id]>p[i])                      min_id=i;        }        return min_id; }   3 #include <stdio.h> main() {        double currency,money;          printf("input:");        scanf("%lf",&money);          if(money>=3200)               currency=money*0.8;        else if (money>2200)               currency=money*0.85;        else if (money>1200)               currency=money*0.9;        else if (money>800)               currency=money*0.95;        else               currency=money;       printf("after discount:%.2lf",currency);   }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服