测试题31.C语言中不合法的字符常量是 CA、’\65’B、’\xff’C、’\028’D、’&’2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B )z=x>y?x:yA、72B、26C、48D、224.对于建立函数的目的,正确的说法是 DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5.有定义:char*p1,*p2;则下列表达式中正确合理的是 CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26.以下程序的运行结果是(B)。main(){int i=1,sum=0;while(ij共执行了多少次 C#includemain(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ) { i += k;if(i > j) {printf(“%d\n”, s);break; } s += i; }}A、4B、8C、6D、710.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。A、8B、17C、6D、2311.下面判断正确的是(D)。A、char *a="china";等价于 char *a;*a="china";B、char str[10]={"china"};等价于char str[10];str[]={"china"};C、char c[4]="abc",d[4]="abc";等价于 char c[4]=d[4]="abc";D、char *s="china";等价于 char *s;s="china";12.设 b的值为二进制数, b表达式(b>>2)/(b>>1)的值是(A)。A、0B、2C、8D、413.以下叙述正确的是(A)。A、用do-while语句构成的循环,在while后的表达式为零时结束循环B、do-while语句构成的循环只能用break语句退出.C、do-while语句构成的循环不能用其它语句构成的循环来代替.D、用do-while语句构成的循环,在while后的表达式为非零时结束循环.14.以下正确的说法是(D)。A、如果形参与实参类型不一致,以实参类型为准B、return后边的值不能为表达式C、定义函数时,形参的类型说明可以放在函数体内D、如果函数值的类型与返回值类型不一致,以函数值类型为准15.已定义两个字符数组a,b,则以下正确的输入格式 B是A、scanf("%s%s", &a, &b);B、scanf("%s%s", a, b);C、gets("a"),gets("b");D、get(a, b);16.宏定义#define PI 3.14中的宏名PI代替 CA、不确定类型的数B、一个单精度实数C、一个字符串D、一个双精度实数17.以下叙述中正确的是(A)。A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号“{“和”}”只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名18.若有说明:int a[3][4];则数组a中各元素(A)。A、不能得到确定的初值B、可在程序的编译或运行阶段得到初值0C、可在程序的运行阶段得到初值0D、可在程序的编译阶段得到初值019.下面四个选项中,均是不合法的用户标识符的选项是(D)。A、_123 temp intB、A P_0 doC、float la0 _AD、b-a gotoint20.以下不能对二维数组a进行正确初始化的语句是(B)。A、int a[][3]={{1,2},{0}};B、int a[2][3]={{1,2},{3,4},{5,6}};C、int a[2][3]={0};D、int a[][3]={1,2,3,4,5,6};21.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(B)。A、9B、-12C、6D、-322.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是(B)。A、有穷性B、有零个或多个输出C、可行性D、有零个或多个输入23.下列语句中,不正确的是(C)。A、static char a[2]={'1'};B、static char a[2]={1,2};C、static char a[2]={'1','2','3'};D、static int a[2]={'1','2'};24.若有下列定义,则对a数组元素地址的正确引用是(D)。int a[5],*p=a;A、*(p+5)B、*&a[5]C、*p+2D、*(a+2)25.若有定义:char *p1,*p2,*p3,*p4,ch;则不能正确赋值的程序语句为(D)。A、p4=&ch;*p4=getchar();B、p2=(char *)malloc(1);scanf("%c",p2);C、p1=&ch; scanf("%c",p1);D、*p3=getchar();26.以下选项中合法的实型常数是(A)。A、.2E0B、E-3C、5E2.0D、1.3E27.若要说明一个类型名STP,使得定义语句STP s等价于char *s,以下选项中正确的是(A)。A、typedef char* STP;B、typedef *char STP;C、typedefstp *char;D、typedef STP char *s;28.sizeof(float)是(B)。A、一种函数调用B、一个整型表达式C、一个不合法的表达式D、一个双精度型表达式29.下面程序的输出结果是main(C){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、2B、4C、3D、130.以下四个程序中,不能对两个整型值进行交换的是 DA、B、C、D、判断1.C语言规定,必须用main作为主函数名 T2.如果想使一个数组中全部元素的值为0,可以写成 Fint a[10]={0*10};3.若i =3,则printf("%d",-i++);输出的值为-4 F4.在C 语言中,此定义和语句是合法的: Tenumaa{ a=5,b,c}bb;bb=(enumaa)5;5.用fopen("file","r+");打开的文件"file"可以进行修改。 T6.循环结构中的continue语句是使整个循环终止执行 F7.在C语言中,对于数组的定义char a[8]="computer"是错误的. T8.C语言本身不提供输入输出语句,输入和输出操作是由函数来 T实现的。9.共同体变量所占的内存长度等于最长的成员的长度。 T10.#define 和printf 都不是C语句。 T程序设计1./*------------------------------------------------【程序设计】--------------------------------------------------功能:给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。------------------------------------------------*/#includeint station(int s[],int n){ /**********Begin**********/ /********** End **********/}main(){int a[100],n,i,t;scanf("%d",&n);for(i=0;is[k]) k=i;return(k+1);2./*------------------------------------------------【程序设计】--------------------------------------------------功能:求n阶方阵主、副对角线上的元素之积。------------------------------------------------*/#define N 4#include "stdlib.h"#includevoid bky(); floatmul(intarr[][N]){ /**********Begin**********/ /********** End **********/}main(){int a[N][N],i,j;for(i=0;i0.0) {累计营业额;输入下一笔交易额; }输出营业额;}记一笔交易额为变量sale,营业额为sigma。------------------------------------------------------*/#includevoid main(){ /**********ERROR**********/floatsale,sigmasigma=0.0;printf("Enter sale data.\n"); /**********ERROR**********/scanf("%f",sale);while(sale>0.0) { /**********ERROR**********/sigma+==sale;printf("Enter next sale data(