《程序设计》课程期终自测试卷(2)
学号: 姓名: 队别:
一、选择题(每题1分,共40分)
1. 下面说法正确的是( )。
A)结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构
B)计算机只能执行顺序结构的C语言源程序
C)循环结构无法使用N-S流程图描述
D)一般称含有20条以内语句的算法为简单算法,超过20条则不可能是简单算法
2. 下面说法正确的是( )。
A)只要程序使用基本结构编写,运行时就不会出错
B)MAIN()函数是每一个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. 设a,b,c是整型变量,以下选项中的赋值表达式错误的是( )。
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)函数参数a,b都是指针变量
B)声明有语法错误,参数a的数组大小必须大于1
C)调用该函数时,形参a仅复制实参数组中第一个元素
D)调用该函数时,a的值是对应实参数组的内容,b的值是对应实参的地址
9. 设有如下程序段
int a[2]={0};
int b[ ]={0,0,1};
char c[]={"A"};
char d= "\0";
以下叙述中正确的是( )。
A)a、b的定义合法,c、d的定义不合法
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. 以下叙述中正确的是( )。
A)C语句必须在一行内写完
B)C程序中的每一行只能写一条语句
C)C语言程序中的注释必须与语句写在同一行
D)简单C语句必须以分号结束
13. 以下选项中关于C语言常量的叙述错误的是( )。
A)经常被使用的变量可以定义成常量
B)常量分为整型常量,实型常量、字符常量和字符串常量
C)常量可分为数值型常量和非数值型常量
D)所谓常量,是指在程序运行过程中,其值不能被改变的量
14. 以下选项中,不合法的C语言用户标识符是( )。
A)a 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<回车>
则a和b的值分别是( )。
A)87和6.0 B)876和543.0 C)87和543.0 D)76和543.0
17. 有以下定义语句,编译时会出现编译错误的是( )。
A) char a='\x2d'; B) char a='\n'; C) char a='a'; D) char a="aa";
18. 当变量c的值不为2、4、6时,值也为"真"的表达式是( )。
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文件,不能够正确计算上述公式的程序段是( )。
A)if(x>=0) y=sqrt(x); B)if(x>=0) y=sqrt(x);
if(x <0) y=sqrt(-x); else y=sqrt(-x);
C) y=sqrt(x); D)y=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; B)y=0; C) y=1; D)while构成无限循环
21. 有以下程序:
#include<stdio. h>
main()
{ int i;
for(i=l;i<=40;i++)
{ if(i++%5= =0)
if(++i%8= =0)pintf("%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 *c,int 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< stdio.h>
void fun(int *w, int n)
{ int i;
for(i=0;i<n;i+ +)
{
printf("%d", w[i]);
}
printf("\n");
}
在横线处应填入的语句是( )。
A)if(i/8= =0) printf("\n"); B)if(i/8= =0) continue;
C)if(i%8= =0) printf("\n"); D)if(i%8= =0) continue;
27. 有以下程序:
#include <stdio.h>
void fun(char *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小时内删除。
发表评论