C语言综合试卷三答案

合集下载

c语言综合练习题及答案

c语言综合练习题及答案

c语⾔综合练习题及答案模拟试题⼀⼀、选择题(本⼤题30分,每⼩题2分)1.下列说法正确的是。

A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执⾏C程序时是从程序开头执⾏的D)main函数可以放在C程序的中间部分,但在执⾏C程序时是从main函数开始的2.在下⾯⼏组数据类型中, 全为最常⽤的基本数据类型的是哪⼀组:。

A)整型实型字符型B)整型数组指针C)数组结构体共⽤体D)指针逻辑型空类型3.若有说明语句:char c= …\64? ; 则变量C包含:。

A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定4.设有如下定义和执⾏语句,其输出结果为:。

int a=3,b=3;a = --b + 1; printf(“%d%d”,a,b);A)3 2 B)4 2 C)2 2 D)2 35.C语⾔中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和\ D)**6.能正确表⽰x的取值范围在[0,100]和[-10,-5]内的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)7.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执⾏结果是last= 。

A)2 B)3 C)4 D)⽆结果8.下⾯有关for循环的正确描述是。

江苏省c语言试卷含答案3

江苏省c语言试卷含答案3

江苏省计算机等级考试- 学年第学期 c程序设计试卷( )1. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值2. 下面程序的输出是void prtv(int *x)printf("%d\n", ++*x);}main(){ int a=25;prtv(&a);}A) 23 B) 24C) 25 D) 263. 设x为int型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A)10 B)20 C)40 D)304. 设有以下宏定义:#define N 3#define Y(n)((N+1)*n)则执行语句:z=2 *(N+Y(5+1));后,z的值为A)出错B)42 C)48 D)545. 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bou1C) re'hi'you D) abre'hi'y\bou(说明:'\b'是退格符)6. 当执行以下程序段时x=-1;do { x=x*x;} while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7. 以下程序段的输出结果是int x=3;do { printf("%3d",x-=2);} while(!(--x));A) 1 B) 3 0 C) 1-2 D) 死循环8. 下面程序的输出是main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11 B)k=11,k=13,k=13C)k=11,k=013,k=0xb D)k=11,k=13,k=b9. 下面的程序main(){ int x=3;do {printf("%d\n",X-=2);}while(!(--x));}A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环10. 表示关系x≤y≤z的c语言表达式为A) (X<=Y)&&(Y<=Z)B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z)D) (X<=Y)&(Y<=Z)211. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A)不定值B)2 C)1 D)012. 有以下程序main(){char a[]="programming",b[]="language";char *p1,*p2;int i;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}输出结果是A)gm B)rg C)or D)ga13. 以下程序的输出结果是# include <stdio.h># include <string.h>main(){ char str[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str)); }A) 6 B) 7 C) 11 D) 1214. 运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为main ( ){int m,n;printf("Enter m,n:");scanf("%d%d,&m,&n");while(m!=n){3while(n>m)n-=m;}printf("m=%d\n",m);}A)m=3 B)m=2 C)m=1 D)m=015. 下面函数的功能是sss(s, t)char *s, *t;{ while((*s)&&(*t)&&(*t++== *s++));return(*s-*t);}A) 求字符串的长度B) 比较两个字符串的大小C) 将字符串s复制到字符串t中D) 将字符串s接续到字符串t中16. 若有以下的说明和语句:main(){int t[3][2], *pt[3],k;fpr(k=o; k<3;k++)pt[k]=t[k];}则以一选项中能正确表示t数组元素地址的表达式是A) &t[3][2] B) *pt[0]C) *(pt+1) D) &pt[2]17. 语句:printf("%d \n",12 &012);的输出结果是A) 12 B) 8 C) 6 D) 01218. 能正确表示a≥10或a≤0的关系表达式是A)a>=10 or a<=0 B)a>=10│a<=0C)a>=10││a<=0 D)a>=10 ││a<=019. 假定a和b为int型变量,则执行以下语句后b的值为a=1;b=10;do{b-=a;a++;}4A)9 B)—2 C)—1 D)820. 以下说法中正确的是A) #define和printf都是C语句B) #define是C语句,而printf不是C) printf是C语句,但#define不是D) #define和printf都不是C语句二、填空题(每空1分,共10分。

国家开放大学《C语言程序设计》综合测试题参考答案

国家开放大学《C语言程序设计》综合测试题参考答案

国家开放大学《C语言程序设计》综合测试题参考答案综合测试1一、单选题(每小题2分,共20分)1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。

a. functionb. namec. maind. MAIN2.每个C语言程序文件的编译错误分为()类。

a. 2b. 4c. 1d. 33.字符串"a+b=12\n"的长度为()。

a. 7b. 9c. 6d. 84.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。

a. forb. whilec. ifd. do5.在下面的do-while循环语句中,其循环体语句被执行的次数为()。

int i=0; do i++; while(i<10);a. 4b. 3c. 10d. 56.将两个字符串连接起来组成一个字符串时,选用的函数为()。

a. strcap()b. strcmp()c. strlen()d. strcat()7.若用数组名作为函数调用的实参,传递给形参的是()。

a. 数组的首地址b. 数组元素的个数c. 数组中全部元素的值d. 数组中第一个元素的值8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a 数组的首地址大( )个字节。

a. 16b. 32c. 4d. 89.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。

a. char *p;p=*s;b. char *p; p=&s;c. char *p=&s;d. char *p=s;10.从一个数据文件中读入以换行符结束的一行字符串的函数为()。

a. fgetc()b. fgets()c. getc()d. gets()二、填空题(每小题2分,共26分)11.C语言中的每条简单语句以(分号)作为结束符。

c本科三试题及答案

c本科三试题及答案

c本科三试题及答案一、单项选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 在C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:B3. C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str = "Hello";答案:A4. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. =答案:A5. 以下哪个选项是C语言中合法的数组声明?A. int array[] = {1, 2, 3};B. int array[] = (1, 2, 3);C. int array[] = {1; 2; 3};D. int array[] = 1, 2, 3;答案:A6. C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 在C语言中,以下哪个选项是正确的注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:A8. C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio>D. #include "stdio"答案:A9. 在C语言中,以下哪个选项表示无限循环?A. while(1)B. for(;;)C. do{}while(1)D. A和B答案:D10. C语言中,以下哪个选项用于定义一个结构体?A. structB. struct{}C. struct nameD. struct{}答案:A二、填空题(每题2分,共20分)1. C语言中,______关键字用于定义一个宏。

3套 《C语言程序设计》试卷+参考答案

3套 《C语言程序设计》试卷+参考答案

一、选择填空:(每题1.5分,共15分)1.以下可以正确表示字符型常数的是。

(A) “a”(B) ‘297’ (C) ‘\t’ (D)“\n”2. typedef struct{ char name[10];int age;char interests[20];} student;以上语句中 student 是:(A)结构体变量,有存储空间 (B)结构体数据类型,无存储空间(C)结构体变量,无存储空间 (D)结构体数据类型,有存储空间3.函数:void f(void){int i = 12, j;for(j=0; j<20; j++)i++;}当f执行完退出后,i的值为_____ _____(A) 12 (B) 32 (C) 29 (D) 无定义4.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(A)*p+6 (B)*(p+6) (C)*p+=5(D)p+55.以下代码执行后,result的值为:#define FIVE 2+3result = FIVE * FIVE(A) 11 (B) 13 (C) 25 (D)106.已知函数定义的形式如下:struct data *f(void){……}则函数f:(A) 没有参数,返回值是一个结构体(B)有一个参数void, 返回值是一个结构体(C)没有参数,返回值是一个结构体指针(D)有一个参数void, 返回值是一个结构体指针7.下列说法中,不正确的是_ ____(A)函数中可以没有return语句。

(B)所有的函数都不能嵌套定义,但可以相互调用。

(C)函数的实参应与其对应的形式参数类型一致。

(D)函数可以不加函数返回值类型标识符。

8.一个C程序的执行是。

(A)从本程序的main函数开始,到main函数结束(B)从本程序文件的第一个函数开始,到本程序文件最后一个函数结束(C)从本程序的main函数开始,到本程序文件的最后一个函数结束(D)从本程序文件的第一个函数开始,到本程序的main函数结束9.在C语言的算术运算符中只能用于整型数的运算符是(A)* (B)/ (C)++ (D)%10 在下列选项中,没有构成死循环的程序段是(A)int i=100;while (1) {i=i%100+1;if(i>=100) break;}(B)for(;;);(C)int k=1000;do{++k;} while (k>=1000);(D)int s=36while(s); --s;二、写出下列程序的运行结果:(共35分)1.(8分)int funa(int *a) { a[0] ++; }int funb(int b[]) { b[1] += 5; }main(){int a[5] = {2,3,4,5,6};int b[5] = {2,3,4,5,6};int *p, i;p = &a[0];(*p)++;funb(p);for(i = 0; i <5; i++)printf("%d,",a[i]);p = &b[1];funa(p);funb(p);for(i = 0; i < 5; i++)printf("%d,",b[i]);}运行结果:2、(6分)main(){char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0; *(p1+i)!=’\0’&&*(p2+i)!=’\0’;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }运行结果是:3、(8分)int f(int n){if (n==1){return 1;}else{return 2 * f(n/2);}}运行结果: f(20)的值是多少?4、(6分)void change (int *a, int *b){int x =* a;*a = *b; *b = x;printf(“%d %d “, *a, *b)';}void main(){int x=10,y=25;change (&x, &y);printf(“%d %d “, x, y)';}运行结果:5、(5分)已知字母A的ASCII码为十进制的65,下面程序的输出是void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}答案三、程序填空(每空2分,共38分)1、下面是一个求数组元素之和的程序。

电子学会青少年软件编程(C语言三级)等级考试真题试卷(2022年3月)-附答案

电子学会青少年软件编程(C语言三级)等级考试真题试卷(2022年3月)-附答案

if((k-p)%23==0&&(k-e)%28==0&&(k-i)%33==0)break; cout<<k-d<<endl; return 0; }
参考答案2 #include<iostream> using namespace std; int main(){ int p,e,i,d; int k; for(k=d+1;(k-p)%23;k++); for(;(k-e)%28;k+=23); for(;(k-i)%33;k+=23*28); cout<<k-d<<endl; return 0; }
时间限制:10000 内存限制:65536 输入 共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个不大于10000的正整数组成的数列,相 邻两个整数之间用单个空格隔开。 输出 一个整数,即数列中等于其他两个数之和的数的个数。
样例输入 4 1234 样例输出 2
答案
青少年软件编程(C语言三级)等级考试真题试卷(2022年3月)
题目总数:5
总分数:100
时间:不限时
第 1 题
问答题 和数 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题 的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。
时间限制:1000 内存限制:65536 输入 一行,包含四个整数:p, e, i和d,相邻两个整数之间用单个空格隔开。 p, e, i分别表示体力、情感和智力高峰 出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的 并且小于等于365, 所求的时间小于等于21252。 输出 一个整数,即从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

C综合练习- 3 附参考答案-推荐下载


D、++a
5.表达式“c=*p++”的执行过程是( )。
A、复制*p 的值给 c 后再执行 p++
B、复制*p 的值给 c 后再执行*p++
C、复制 p 的值给 c 后再执行 p++
D、执行 p++后将*p 的值复制给 c
6.函数 strcmp("Int","int"))的返回值为 。
A、 0
B、 -32
共7 页
B、6
06 级校试点班

C、(3, 6)
C、10
B、char str[10]= "string";
D、char str[10]; str="string";
C、8
C、ijkl
C、(1, 3)
C、3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

C语言程序设计综合习题3

C语言程序设计3一、选择(每题2分,共40分)1、构成C语言程序的基本单位是()A)程序行B)语句C)函数D)表达式2、在C语言中,不同的数据所占用的存储空间长度不同,在Turbo C下,下列各组中按所占空间由小到大的顺序排列的是()A)short int , char , float , double B)char , float , int , doubleC)int , unsigned char , long int , float D)char , int , float , double3、以下可在C程序中作为用户标识符的一组标识符是()A)3C define WORD B)a_4 _123 IfC)For _abc default D)p?123 DO SIG4、下列运算符中级别最低的是()A)算术运算符B)关系运算符C)赋值运算符D)逻辑运算符5、若有以下定义:int x ;float y = 4.5 ;则执行语句x = ( int ) y +2后,x、y的值分别为()A)4 , 4 B) 6 , 4 C ) 6 , 4.5 D)6 , 6.56、在C语言中,以下错误的常量是()A)0L B)‘\n’C)012 D)e27、putchar 函数可以向终端输出一个()A)整数值B)实型变量值C)字符串D)字符或字符型变量的值8、语句printf (“ %-5.3s ” , “ computer ” ) ; 的输出结果是()A) └┘└┘com B) computer C) com└┘└┘D) compu9、有以下定义:int i = 5 ;语句printf(“ %d ,%d ”,i-- , i );的输出结果为()A)5 ,4 B)4 , 4 C)5 , 5 D)4 , 510、为表示关系x≥y≥z ,应使用的C语言表达式是()A)( x >= y ) && ( y >= z ) B)( x >= y ) AND ( y >= z )C)( x ≥y ≥z ) D)( x >= y ) || ( y >= z )11、关于下面程序说法正确的是()main ( ){ int x =3 , y = 0 , z = 0 ;if ( x = y + z ) printf ( “ ****\n ” ) ;else printf ( “ #### \n ” ) ; }A)有语法错误,不能通过编译 B)输出****C)可以通过编译,但不能通过连接,因此不能运行D)输出####12、下面两个程序段中,变量sum与i的初值均相同,在( )情况下,两个程序段的执行结果不同。

C语言试卷(含答案)

C语⾔试卷(含答案)⼀、单项选择题(每⼩题2分,共40分)1、sizeof(float)是()A. ⼀个双精度型表达式B. ⼀个整型表达式C. ⼀种函数调⽤D. ⼀个不合法的表达式2、设i是int型变量,f是float型变量,⽤下⾯的语句给这两个变量输⼊值: scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输⼊为()。

A. 100 765.12B. i=100,f=765.12C. 100<回车> 765.12D. x=100 y=765.123、#includevoid main(){int a=3,b=2,c=1;int x=10,y=20;if(aif(b!=0)if(!x)y=1;else if(x)y=0;y=-1;printf("%d",y);}上⾯的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语⾔中,while和do…while循环的主要区别是()。

A. do…while的循环体⾄少⽆条件执⾏⼀次B. while的循环控制条件⽐do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执⾏下⾯的C程序段后,输出结果是()。

int a=5; while( a- -);printf( "%d",a) ;A. 54321B. 4321C. 0D. -16、在C语⾔中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下⾯的C程序:#includevoid main(){int num=0;while(num<=2){num++;printf("%d ",num);}}输出结果是()。

A. 1 2 3B. 0 1 2C. 2 3D. 1 28、下⾯的C语⾔代码段的输出结果是()。

C语言程序设计模拟试题3(附答案)NEW

C语⾔程序设计模拟试题3(附答案)NEW《C语⾔程序设计》模拟试卷三⼀、填空题。

(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。

2.⼀个C语⾔⽂件是由若⼲个组成。

3.设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为。

4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语⾔关系表达式。

5.若有如下图所⽰五个连续的int类型的存储单元并赋值如下图,a[0]的地址⼩于a[4]的地址。

p和s是基类型为int的指针变量。

请对以下问题进⾏填空。

a[0] a[1] a[2] a[3] a[4](1)若p已指向存储单元a[1]。

通过指针p,给s赋值,使s指向最后⼀个存储单元a[4]的语句是。

(2)若指针s指向存储单元a[2],p 指向存储单元a[0],表达式s-p的值是。

⼆、单项选择题。

(每题2分,共40分)1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。

A) 3 B) 4 C) 11 D) 122.下列程序的输出结果是()。

A) 3 B) 3.2 C) 0 D) 3.07main(){double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf(“%d \n”, d*y);}3.下列程序执⾏后的输出结果是(⼩数点后只写⼀位)()。

A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法的是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合测试 三 一、单项选择题(每题2分,共15题,共30分) (以下各题中,有四个选项A、B、C、D,其中只有

一个选项是正确的,请将正确的选项填入括号中) 01. 有定义语句:int b;char c[10],则正确的输入语句是( ) A. scanf(“%d%c”,&b,&c); B. scanf(“%d%c”,&b,c); C. scanf(“%d%s”,&b,c); D. scanf(“%d%s”,&b,&c); 02.不属于C语言保留字的是( ) A. else B. return C. print D. while 03.函数rewind( )的功能是将文件内部指针( )。 A. 重置于文件首 B.重置于文件末 C. 重置于文件中部 D.重置于当前位置 04.从键盘输入一串字符串的函数是 ( ) A.getchar B.putchar C.gets D.puts 05. C语言中,文件的操作有以下四步: ①打开文件 ②定义文件指针 ③关闭文件 ④对文件进行读写操作 正确的操作顺序是( ) A. ①②③④ B. ②①④③ C. ②①③④ D. ①②④③ 06.设int j=12,请问执行j+=j*j后j的值为( ) A.144 B.13 C.28 D.156 07.有命令:FILE *fp; 以追加方式打开文件d:\a.txt的正确语句是( ) A. fp=fopen("d:\a.txt","r"); B. fp=fopen("d:\\a.txt","w"); C. fp=fopen("d:\a.txt","a"); D. fp=fopen("d:\\a.txt","a"); 08.对数组元素进行初始化的正确作法是 ( ) A.int a[3]={1,2,3,4}; B.int a[]={1,2,3}; C.int a[3]=(1,2,3); D.int a[3]="key"; 09.设有定义 int a=3,b,*p=&a ; 则下列语句中使b不为3的语句是( ). A.b=*&a; B. b=*p; C. b=a; D. b=*a; 10.不属于C基本算术运算符的是 ( ) A.* B./ C.^ D. % 11.设字符变量ch的值为`b`,则函数putchar(ch-32)的输出是 ( ). A.B B. 66 C.b D. 96 12.在C语言中,下列 ( )循环为非法的. A.until语句构成的循环循环 B.for语句构成的循环 C. while语句构成的循环 D. do-while语句构成的循环 13.C语言中,整型常数不包括的整数形式是( )。 A.十进制 B. 二进制 C. 八进制 D. 十六进制 14.设 int a[10], *p; 与语句p=a 等价的是 ( ) A. *p=&a B. p=&a[0] C. *p=&a[0] D. p=&a[10] 15.设a为5,执行下列语句后,b的值不为2的是( ) A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a>3?2:1 二、填空题(每题2分,共10题,共20分) (每题2空,每空1分) 01.结构化程序设计的三种基本结构是:顺序结构、选择结构和___循环___结构;if…else…语句属于______选择______结构。 02.释放指针空间的函数是____free____ ,求字节数的函数是___sizeof____ (只填函数名)。 03.在循环结构中,continue语句的作用是__________结束本次循环______________;break语句的作用是_________结束循环_______________________。 04.表示条件:00 && x<10__________;将a2+b2赋给c的C语言表达式是_______c=a*a+b*b____________。 05.在C语言中,格式输入操作是由库函数___scanf()_____完成的,格式输出操作是由库函数__printf()_____完成的。 06.在一个C源程序中,注释部分两侧的分界符分别为___/*_____和___*/_____ 07.若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为___6___,b值为___4_____。 08.设a=3,b=2,c=1,则a>b的值为___1____;a>b>c的值为___0_____。 09.数組定义为int a[6]={1,2,3,4,5,6};则数组的第一个元素是a[__0__],如第三个元素为前二个元素之和,则表达式为____a[2]=a[1]+a[0]____。 10.如定义:int a=2,b=3; 则printf("%d",++a);的输出结果是________3____________,printf("%d",b--);的输出结果是________3________。 三、程序分析题(每题4分,共8题,共32分) 01. 用for结构替换下面while结构,使之能够正确运行。(将完整的程序写在其右侧) #include "stdio.h" main() {int i=0,s=0; while(i<=20) for( ;i<=20;i++) {s=s+i; s=s+i; i++;} printf("\nsum=%d",s); } 02.写出下列程序的运行结果(写在程序右侧) #include "stdio.h" main() {int a=1,b=2,c; c=(++a)+(b- -); c=4 printf("a=%d,b=%d,c=%d",a,b,c);} a=2,b=1,c=4 03. 写出下列程序的运行结果(写在程序右侧) #include "stdio.h" main() { int x=3,*px=&x; printf("\n%d,%d",x,*px); 3,3 *px=9; printf("\n%d,%d",x,*px); 9,9 } 04. 写出下列程序的运行结果(写在程序右侧) #include "stdio.h" main() {int *var,ab; ab=100; var=&ab; ab=*var+10; printf(“%d\n”,*var+ab);} 220 05. 写出下列程序的运行结果(写在程序右侧) #include "stdio.h" main() {int i,j; for(i=1;i<=3;i++) {for(j=4;j<=5;j++) printf("%5d",i*j); printf("\n");} } 06.改正下列程序中错误的语句,使之能够正确运行(写在程序右侧) #include "stdio" main() {int i; char c; printf("\nplease input the value of i and c:"); scanf("%d",i); ___ scanf("%d",&i); ______________ getchar(c); ___c=getchar();__________________ printf("\ni=%d,c=%s",i,c); ___ printf("\ni=%d,c=%c",i,c); ______

4 5 8 10 12 15 } 07.下列程序的功能是什么?(答案写在程序右侧) #include "stdio.h" main() {int i; double s=0.0; for(i=1;i<=100;i++) s=s+1/(double)i ; printf("\ns=%.2lf",s); } 08.下列程序是利用函数计算x+y的值,请将程序填写完整。 #include "stdio.h" int sum(int,int); main() {int x,y,z; scanf("%d%d",&x,&y); z=sum(x,y); printf("\n%d+%d=%d",x,y,z); } int sum(int a,int b) {int z; z=a+b____________; return z;_________;} 四、编程题(每题6分,共3题,共18分) 01. 编写程序,求出所有的水仙花数(所谓水仙花数是指一个三位数,其各位数字的立方之和等于该正整数,例如:153=13+53+33)。 02. 用循环和递归两种方法分别定义函数求解f,x和n作为形参。编写主函数调用相应的函数。 xnnnnxf1......)2()1()(

=> ()(1)1fxnnfxnn 03. 编写一个函数输出如下图案。用参数n控制输出的行数,参数值的取值范围1-9,超过范围,函数不作任何输出,返回整数0;否则输出图案后返回整数1。 1 222 33333 4444444 555555555

01. int hundred,ten,unit,i; for(i=100;i<=999;++i) { hundred=i/100; ten=(i-hundred*100)/10;

相关文档
最新文档