程序设计基础期末样题(1)单项选择==================================================题号:23095任何一个C语言的可执行程序都是从()开始执行的.A、main()函数的入口处B、程序中的第一条语句C、程序中的第一个函数D、编译预处理语句答案:A题号:23285C语言程序的三种基本结构是顺序结构,选择结构和()结构.A、循环B、转移C、递归D、嵌套答案:A题号:23286C语言中,定义结构体的保留字是().A、enumB、unionC、structD、typedef答案:C题号:23333程序流程图PFD中的"□"代表的是().A、控制流B、加工步骤C、数据流D、组成关系答案:B题号:23161C语言中,下列叙述正确的是().A、do-while 语句构成的循环不可用B、do-while 语句构成的循环,没有break语句就是死循环C、do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环D、do-while 语句构成的循环,当while 语句中的表达式值为非零时跳出循环答案:C题号:23405以下不能正确进行字符串赋初值的语句是().A、char *str="good!";B、char str[5]={'g','o','o','d',0};C、char str[5]="good!";---超界D、char str[]="good!";答案:C题号:23400下述错误的C语言常量是().A、5.B、.25C、0xfD、090答案:D题号:23577以下对C语言中联合类型数据的正确叙述是().A、定义了联合变量后,即可引用该变量或该变量中的任意成员B、一个联合变量中可以同时存放其所有成员C、在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变D、联合中的各个成员使用共同的存储区域答案:D题号:23584如已定义x和y为double 类型,则表达式x=1,y=x+5/2的值是().A、3.0B、3.5C、2D、3答案:A题号:23493有以下程序:#include<stdio.h>main(){int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是以下代表空格,<CR>代表回车.A、12,a,34,b<CR>B、12 a34 b<CR>C、12 a 34]b<CR>D、12a34b<CR>答案:D题号:24158关于%-m.nf格式符,下列描述中,正确的是().A、字符"-"表示在输出字符前面加上字符"-".B、字符"-"表示输出字符靠左对齐.C、字符"-"表示在输出字符最后加上字符"-".D、字符"-"表示输出字符靠右对齐.答案:B题号:23674下面程序的输出结果是().main(){int i=2,p;p=f(i,i+1);printf("%d",p);}int f(int a,int b){int c;c=a;if(a>b)c=1;else if(a==b)c=0;else c=-1;return c;}A、0B、1C、2D、-1答案:D题号:23833在数据库设计中,将E-R图转换成关系数据模型的过程属于().A、物理设计阶段B、需求分析阶段C、逻辑设计阶段D、概念设计阶段答案:C题号:23779已有声明"int x=5,y;float z=2;",则以下表达式语法正确的是().A、x>0? y=x:y=-xB、y=x/2=zC、y=x=z/2D、y=x%z答案:C题号:23735关系表中的每一横行称为一个.A、元组B、字段C、行D、码答案:A题号:24289若有int i=0;,则以下程序段中,while 循环的循环次数是() while(i<10){if(i<1)continue;if(i==5)break;i++;}A、6B、死循环,不能确定次数C、1D、4答案:B题号:24605以下不是无限循环的语句为().A、while(1){x++;}B、for(i=10;;i--)sum+=i;C、for(y=0,x=1;x>++y;x=i++)i=x;D、for(;;x++=i);答案:C题号:24655下面程序的功能是将从键盘输入的一对数,由小到大排序输出.当输入一对相等数时结束循环.请选择.#include<stdio.h>void main(){int a,b,t;scanf("%d%d",&a,&b);while(){if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}A、!a=bB、a=bC、a !=bD、a==b答案:C题号:24192请阅读以下程序:#include<stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++;b++; break;}printf("a=%d,b=%d\n",a,b);}上面程序的输出结果是().A、a=1,b=1C、a=2,b=1D、a=1,b=0答案:C题号:24329有以下程序:#include<stdio.h>int a=1;int f(int c){static int a=2;c=c+1;return (a++)+c;}main(){int i,k=0;for(i=0;i<2;i++){int a=3;k+=f(a);}k+=a;printf("%d\n",k);}程序的运行结果是().A、15B、14C、程序不正确,无法编译D、16答案:B题号:24750设有数组定义:char array[]="China";,则数组 array所占的空间为().A、5个字节B、4个字节C、6个字节D、7个字节答案:C有以下程序:#include<stdio.h>#include<string.h>main(){char a[10]="abcd";printf("%d,%d\n",strlena,sizeofa);}程序运行后的输出结果是().A、8,8B、10,10C、7,4D、4,10答案:D题号:24996下面程序的输出结果是().#include<stdio.h>#include<string.h>main(){ char p1[]="WHO",p2[]="who",str[50]="xyz";strcpy(str+1,strcat(p1,p2));printf("%s",str);}A、zWHOwhoB、zWHOwhoC、xWHOwhoD、xyzWHOwho答案:C题号:24949有以下程序:#include<stdio.h>main(){ int aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}}; int i,s=0;for(i=0;i<4;i++)s+=aa[i][2];printf("%d",s);}程序运行后的输出结果是().A、19B、10C、26D、20答案:A题号:24888语句printf"%d\n",strlen"msn\t\01\\\t";的输出结果有几个字符.A、10B、6C、9D、7答案:D题号:25059有以下程序:#include<stdio.h>main(){char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d\n",n);}程序运行后的输出结果是().A、8B、7C、3D、0答案:C题号:24935以下能正确定义数组并正确赋初值的语句是().A、int d[3][2]={{1,2},{34}};B、int c[4][]={{1,2},{3,4}};C、int b[1][3]={{1},{3}};D、int a=1,b[a][a];答案:A题号:24981以下程序的输出结果是().void change int k[]{k[0]=k[5];}main(){int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4){change&x[n];n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}A、13579B、62345C、12345D、678910答案:D题号:25123以下对数组初始化错误的是().A、int a[2][3]={{1,2,3},{4,5}}B、int a[2][3]={1,2,3,4};C、int[2][]={1,2,3,4,5,6};D、int a[][3]={1,2,3,4,5,6};答案:C题号:25050若有如下说明,且int类型占两个字节,则正确的叙述为().struct st{ int a;int b[2];}a;A、程序运行时为结构体st分配8字节存储单元B、程序只在执行到该结构体时才为结构体st分配存储单元C、结构体变量a与结构体成员a同名,定义是合法的D、类型名struct st可以通过extern关键字提前引用答案:C题号:25530下列不能正确计算代数式值的C语言表达式是().A、1/3.0*pow(sin(1.0/2),2)B、pow(sin(0.5),2)/3C、1/3 *sin(1/2)*sin(1/2)D、sin(0.5)*sin(0.5)/3答案:C题号:25543已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是().A、c<=("'z''"-32)&&("'a'"-32)<=cB、isupper(c)C、A'"<=c&&c<="'Z'D、A'"<=c<="'Z'答案:D题号:26457以下程序段中与语句:k=a>b?b>c?1:0:0;功能相同的是().A、if(a<=b)k=0; else if(b<=c)k=1;B、if((a>b)‖(b>c))k=1; else k=0;C、if((a>b)&&(b>c))k=1; else k=0;D、if(a>b)k=1; else if(b>c)k=1; else k=0;答案:C题号:25404若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是().A、++x,y=x--B、x+1=yC、double(x)/10D、x=x+10=x+y答案:A题号:26092调用函数时,基本类型变量做函数参数,实参和对应的形参().A、同名时才能共用存储单元B、各自占用独立的存储单元C、不占用存储单元D、共占用一个存储单元答案:B程序设计==================================================题号:32147/*------------------------------------------------【程序设计】--------------------------------------------------功能:求小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。