《程序设计》课程期终自测试卷(2
学号:            姓名:              队别:             
一、选择题(每题1分,共40分)
1. 下面说法正确的是(    )。
A)结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构
B)计算机只能执行顺序结构的C语言源程序
C)循环结构无法使用NS流程图描述
D)一般称含有20条以内语句的算法为简单算法,超过20条则不可能是简单算法
2. 下面说法正确的是(    )。
A)只要程序使用基本结构编写,运行时就不会出错
BMAIN()函数是每一个C语言程序必须定义的
C)任何函数只能有一种基本结构
D 任何复杂问题都可以只使用三种基本结构来解決
3. 以下选项中,合法的C语言常量是(    )。
A  C++'            B 1.0            C "0\.\0            D 2B
4. 以下选项中,合法的C语言实数是(    )。
A .9E0            B E22            C 0.41E            D .8e0.01
以下()是不正确的字符串常量5. abc是整型变量,以下选项中的赋值表达式错误的是(    )。
A a=1=(b=1)=1        B a=(b=0)*(c+0)    C a=b=c*0    D a=1%(b=c==9)+46
6. 有如下程序
#include <stdio. h>
main()
{
char* msg ="Hello";
int x=012;
printf("%s, X =%d.\n", msg, x+1);
}
程序运行后的输出结果是(    )。
A Hello, X =11.        B He, X=13.    C HelX=121.    D Hello, X=013.
7. 对于if(表达式)语句,以下说法正确的是(    )。
A表达式的值只能是整数值
B)在表达式中不能调用返回整数的函数
C)在表达式中不能含有函数调用
D表达式可以是算术表达式
8. 对于函数声明
void fun(int a[1], int *b);
以下叙述中正确的是(    )。
A)函数参数ab都是指针变量
B)声明有语法错误,参数a的数组大小必须大于1
C)调用该函数时,形参a仅复制实参数组中第一个元素
D)调用该函数时,a的值是对应实参数组的内容,b的值是对应实参的地址
9. 设有如下程序段
int a[2]={0};
int b[ ]={0,0,1};
char c[]={"A"};
char d= "\0";
以下叙述中正确的是(    )。
Aab的定义合法,cd的定义不合法
B)所有定义都是合法的
C)只有d的定义不合法,其余定义均合法
D)只有a的定义合法,其余定义均不合法
10. 以下涉及字符串数组、字符指针的程序段,没有编译错误的是(    )。
A )  char *str, name[3];                    B char * str, name[5];
    str="name";                            name="name";
C char str1[7]="prog. c\0", str2[7];        D char line[10];
      str2=str1;                            line="/* * * */";
11. 以下叙述中错误的是(    )。
A)算法正确的程序可以有零个输入
B)算法正确的程序最终一定会结束
C)算法正确的程序可以有零个输出
D)算法正确的程序对于相同的输入一定有相同的结果
12. 以下叙述中正确的是(    )。
AC语句必须在一行内写完
BC程序中的每一行只能写一条语句
CC语言程序中的注释必须与语句写在同一行
D)简单C语句必须以分号结束
13. 以下选项中关于C语言常量的叙述错误的是(    )。
A)经常被使用的变量可以定义成常量
B)常量分为整型常量,实型常量、字符常量和字符串常量
C)常量可分为数值型常量和非数值型常量
D)所谓常量,是指在程序运行过程中,其值不能被改变的量
14. 以下选项中,不合法的C语言用户标识符是(    )。
Aa b        B AaBc        C a - - b        D _1
15. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是(    )。
A x=y==5;        B x=n%2.5;    C x+n=i;    D x=5=4+1;
16. 设有定义:
int a;float b;
执行
scanf("%2d% f", &a, &B);
语句时,若从键盘输入
876 543.0<回车>
ab的值分别是(    )。
A876.0        B876543.0    C87543.0    D76543.0
17. 有以下定义语句,编译时会出现编译错误的是(    )。
A char a='\x2d';        B char a='\n';    C char a='a';    D char a="aa";
18. 当变量c的值不为246时,值也为""的表达式是(    )。
A (c>=2&&c<=6)&&(c%2! =1)        B (c= =2)||(c= =4)||(c= =6)
C (c>=2&&c<=6)&&!(c%2)            D (c>=2&&c<=6)||(c!=3)||(c!=5)
19. 有以下计算公式
  (x≥0)
y=    (x<0)
若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是(    )。
Aif(x>=0)  y=sqrt(x);                    Bif(x>=0)  y=sqrt(x);
if(x <0)  y=sqrt(-x);                      else  y=sqrt(-x);
C y=sqrt(x);                            Dy=sqrt(x> =0?x: -x);
if(x<0)  y=sqrt(-x);
20. 有以下程序
#include<stdio. h>
main()
int y=10;
while(y- -);
printf("y=%d\n",y);
}
程序执行后的输出结果是(    )。
A)y=-1;        By=0;    C  y=1;    Dwhile构成无限循环
21. 有以下程序:
#include<stdio. h>
main()
int i;
for(i=l;i<=40;i++)
  ifi++%5= =0
if++i%8= =0pintf("%d"i;
  }
printf("\n");
}
程序执行后的输出结果是(    )。
A 5            B 24            C 32            D 40
22. 有以下程序:
#include<stdio. h>
main()
  int s;
scanf("%d",s);
while(s>0)
  switch(s
  case 1: printf("%d",s+5),
case 2: printf("%d",s+4);break;
case 3: printf("%d",s+3);
default: printf("%d",s+1);break;
        }
scanf("%d",s;
      }
}
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是(    )。
A 66656        B 6566456        C 66666        D 6666656
23. 以下叙述中错误的是(    )。
A)用户定义的函数中可以没有 retun语句
B)用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值
C)用户定义的函数中若没有 return语句,则应当定义函数为void类型
D)函数的 return语句中可以没有表达式
24. 有以下程序:
#include<stdio.h>
void fun(char *cint d)
  *c=*c+1;
d=d+1;
printf("%c,%c,",*c,d);
}
main()
    char b='a', a='A';
fun(&b, A ;
printf("%c, %c\n", b, a);
}
程序运行后的输出结果是(    )。
A b,B,b,A        B b,B,B,A        C a, B,B,a        D a,B,a,B
25. 下列选项中,能正确定义数组的语句是(    )。
A int num[0..2008];            B int num[ ];
C int N=2008;                D #define N 2008
      int num[N];                    int num[N];
26. 以下函数实现按每行8个输出w所指数组中的数据:
#include stdioh
void fun(int *w, int n)
  int i;
for(i=0;i<n;i+ +)
                   
printf("%d", w[i]);
    }
printf("\n");
}
在横线处应填入的语句是(    )。
Aif(i/8= =0)  printf("\n");            Bif(i/8= =0)  continue;
Cif(i%8= =0)  printf("\n");        Dif(i%8= =0)  continue;
27. 有以下程序:
#include <stdio.h>
void funchar *c
    while(*c)
   
        if(*c>='a'&&*c<='z')
              *c=*c - ('a'-'A');
          c++;
      }
}
main()
    char s[81];
    gets(s);
    fun(s);
    puts(s);
}
当执行程序时从键盘上输入 Hello Beijing<回车>,则程序运行后的输出结果是(    )。
A hello beijing    B Hello Beijing  C HELLO BEIJING  D hELLO Beijing
28. 有以下程序:
#include<stdio. h>
main( )
int a[4][4]=1,4,3,2,
8,6,5,7,
3,7,2,5,
4,8,6,1}};
int i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i])
    t=a[j][i];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。