高級語言程序設(shè)計模擬試卷(一)

字號:

模擬試卷(一)
    一、 單項選擇題(在本題的每一小題的備選答案中只有一個答案是正確的,請把正確選項的序號,填入題中的括號內(nèi)。多選不給分。每題1分,共20分)
    1.以下不是c語言規(guī)定保留字的是( )。
    (1)float (2)integer (3)signed (4) unsigned
    2.設(shè)int型變量x有初始值3,則表達式x++*5/10的值是( )
    (1)0 (2)1 (3)2 (4)3
    3.下述程序執(zhí)行后的輸出結(jié)果是( )
     #include
     main()
     {
     int x='f';
     printf("%c\n",'a'+(x-'a'+1));
     }
     (1)G (2)H (3)I (4)J
    4.設(shè)有程序
    #include
    main()
    {
     int i,j;
     for (i=0,j=1;i<=j+1;i+=2,j--)
     printf("%d\n",i);
     }
    在運行上述程序時,for語句中循環(huán)體的執(zhí)行次數(shù)是( )
     (1)3 (2)2 (3)1 (4)0
    5.在下述選項時,沒有構(gòu)成死循環(huán)的程序是( )
     (1)int i=100
     while (1)
     {
     i=i%100+1;
     if (i>100)
     break;
     }
     (2)for (;;);
     (3)int k=1000;
     do
     {
     ++k;
     }while (k>=10000);
     (4) int s=36;
     while (s);--s;
    6.假定a和b為int型變量,則執(zhí)行下述語句組后,b的值為( )。
     a=1;
     b=10;
     do
     {
     b-=a;
     a++;
     } while (b--<0);
     (1)9 (2)-2 (3)-1 (4)8
    7.設(shè)有變量說明語句
     int a=1,b=0;
     則執(zhí)行以下程序段的輸出結(jié)果為( )。
     switch (a)
     {
     case 1:
     switch (b)
     {
     case 0:printf("**0**");break;
     case 1:printf("**1**");break;
     }
     case 2:printf("**2**");break;
     }
     printf("\n");
     (1)**0** (2)**0****2** (3)**0****1****2** (4)有語法錯誤
    8.以下合法的數(shù)組說明是( )。
     (1)char a[6]="string";
     (2)int a[5]={0,1,2,3,4,5};
     (3)char a="string";
     (4)INT a[]={0,12,3,4,5};
    9.下述程序代碼中有語法錯誤的行是( )。
     int i,ia[10],ib[10]; /*第一行*/
     for (i=0;i<=9;i++) /*第2行*/
     ia[i]=0; /*第3行*/
     ib=ia; /第4行*/
     (1)第1行 (2)第2行 (3)第3行 (4)第4行
    10.若已定義
     int a[9],*p=a;
     并在以后的語句中未改變p的值,則不能表示a[1]地址的表達式是( )。
     (1)p+1 (2)a+1 (3)a++ (4)++p
    11.下述程序執(zhí)行后的輸出結(jié)果是( )。
     #include
     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);
     }
     (1)17 (2)18 (3)19 (4)20
    12.設(shè)有如下變量說明語句
     char c[8]="BEIJING",*S=C;
     int i;;
     則下面四個程序段中,有錯誤的是( )。
     (1)printf("%s\n",s);
     (2)printf("%s\n",*s);
     (3)for (i=0;i<7;i++)
     printf("%c",c[i]);
     printf("\n");
     (4)for (i=0;i<7;i++)
     printf("%c",s[i]);
     printf("\n");
    13.以下敘述中不正確的是( )。
     (1)在不同的函數(shù)中可以使用相同名字的變量
     (2)函數(shù)中的形式參數(shù)是局部變量
     (3)在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
     (4)在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
    14.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     main()
     {
     int w=5;
     fun(w);
     printf("\n")
     }
     fun (int k)
     {
     if (k>0)
     fun (k-1);
     printf ("%d ",k);
     }
     (1)54321 (2)012345 (3)12345 (4)543210
    15.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     int m=13;
     int fun(int x,int y)
     {
     int m=3;;
     return (x*y-m);
     }
     main()
     {
     int a=7,b=5;
     printf ("%d\n",fun(a,b)/m);
     }
     (1)1 (2)2 (3)7 (4)10
    16.執(zhí)行下述程序的運行結(jié)果是( )。
     #include
     long fib(int n)
     {
     long res;
     switch (n)
     }
     case 0:res=0;break;
     case 1:res=1;break;
     default:res=fib(n-1)+fib(n-2);
     }
     return (res);
     }
     main()
     {
     printf("%ld\n",fifb(6));
     }
     (1)5 (2)8 (3)13 (4)21
    17.有如下結(jié)構(gòu)體類型定義和變量說明
     struct node
     {
     char data;
     struct node *next;
     }a,b,*p=&a,*q=&b;
     且如下圖所示指針p指向變量a,指針q指向變量b。則不能把結(jié)點b連接到結(jié)點a之后的語句是( )。
     5
    9
    p
    q
    a
    date
    next
    \0
    b
    date
    next
     (1)a.next=q (2)p.next=&b (3)p->next=&b (4)(*p).next=q
    18.以下對枚舉類型的定義中正確的是( )。
     (1)enum a={one,two,three};
     (2) enum a{one=9,two=-1,three};
     (3) enum a={"one","two","three"};
     (4) enum a{"one","two","three"};
    19.c語言對文件的操作提供了提供了若于個標(biāo)準(zhǔn)庫函數(shù),其中對格式化讀函數(shù)fscanf的函數(shù)調(diào)用正確格式是( )。
     (1)fscanf(文件指針,格式控制字符串,輸入項表);
     (2)fscanf(格式控制字符串,輸入項表,文件指針);
     (3)fscanf(格式控制字符串,文件指針,輸入項表);
     (4)fscanf(文件指針,輸入項表,格式控制字符串);
    20.執(zhí)行下述程序的輸出結(jié)果是( )。
    #include
     #define f(x) x*x
     main()
     {
     int a=6,b=2,c;
     c=f(a)/f(b);
     printf("%d\n",c);
     }
     (1)9 (2)6 (3)36 (4)18