C语言试卷1
c语言试题及答案

C语言试题及答案
试题一:变量和数据类型
1.请简要解释变量在C语言中的作用。
答:变量在C语言中用于存储数据,可以通过变量名来访问和修改存储的数据。
变量的作用是方便程序处理
数据、保存中间结果,以及实现算法和逻辑。
2.C语言中的基本数据类型有哪些?
答:C语言中的基本数据类型包括整型、浮点型、
字符型和空类型(void)。
具体的基本数据类型有:char、int、float、double和void等。
试题二:运算符和表达式
1.请简要解释赋值运算符的作用。
答:赋值运算符(=)用于将右侧表达式的值赋给
左侧操作数(变量)。
它的作用是将一个值存储到一个变
量中,使得该变量可以在程序中进行后续的操作和计算。
2.C语言中的逻辑运算符有哪些?
答:C语言中的逻辑运算符有与运算(&&)、或运算(||)和非运算(!)。
逻辑运算符用于连接多个条件,判断多个条件之间的关系并返回结果。
试题三:条件语句和循环语句
1.请解释C语言中的条件语句if-else的用法,并举例说明。
答:条件语句if-else用于根据给定的条件选择不同的执行路径。
如果条件为真(非零),则执行if语句块中的代码;否则执行else语句块中的代码。
以下是一个简单的例子:
```c int num = 10;
if (num > 0) { printf(。
c语言题1

1.以下对C语言函数的描述中,正确的是(B).A、C函数既可以嵌套定义又可以递归调用B、C程序必须由一个或一个以上的函数组成C、C程序中有调用关系的所有函数必须放在同一个程序文件中D、函数必须有返回值,否则不能使用函数2. 用C语言编写的代码程序(B)A、可立即执行B、是一个源程序C、经过编译解释才能执行D、经过编译即可执行3. 以下字符中不是转义字符的是(A).A、\c'B、\t'C、\\'D、\n'4. 若有说明:int *p,m=5,n;以下正确的程序段是(A).A、p=&n;*p=m;B、p=&n;scanf("%d",*p)C、p=&n;scanf("%d",&p);D、scanf("%d",&n);*p=n;5. 以下程序的运行结果是(A).main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A、B、12C、369D、906. 有以下定义语句double a,b; int w; long c;各变量已正确赋值,则下列选项中正确的表达式是(D)A、w=a==b;B、a=a+b=b++C、w%((int)a+b)D、(c+w)%(int)a7. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2='A'+'6'-'3';后c2中的值是(A)A、DB、不确定的值C、CD、688. 一个C语言程序是由(A).A、函数组成B、一个主程序和若干子程序组成C、若干子程序组成D、若干过程组成9. C语言中用于结构化程序设计的三种基本结构是(A)A、顺序结构、选择结构、循环结构B、if、switch、breakC、if、for、continueD、for、while、do-while10. 设以下变量均为int类型,则值不等于7的表达式是(D).A、(y=6,y+1,x=y,x+1)B、(x=y=6,x+y,y+1)C、(x=y=6,x+y,x+1)D、(x=6,x+1,y=6,x+y)11. C语言能正确处理的指数是(B).A、e-32B、C、、12. 逻辑运算符两侧运算对象的数据类型(B)A、只能是0或非0正数B、可以是任何类型的数据C、只能是0或1D、只能是整型或字符型数据13. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(B).A、答案B和C都正确B、读或读写C、只写D、追加14. 下面的叙述中不正确的是(B)A、宏名无类型,其参数也无类型B、宏定义命令必须写在文件开头C、宏替换只是字符替换D、宏定义不是C语句,不必在行末加分号15. 以下叙述中不正确的是(B).A、在程序中凡是以#号开始的语句行都是预处理命令行B、C程序在执行过程中对预处理命令行进行处理C、预处理命令行都必须以#号开始D、以下是正确的宏定义#define IBM_PC16. 若变量a和i已正确定义,且i已正确赋值,合法的语句是(A).A、++i;B、a=a++=5;C、a==1D、a=int(i);17. 以下符合C语言语法的赋值表达式是(A)A、B) d=9+e,f=d+9B、D)d=9十e++=d十7C、A)d=9+e+f=d+9D、C)d=9十e,e++,d十918. 以下说法正确的是(D)A、A)输入项可以为一实型常量,如scanf("%f",;B、C)当输入一个实型数据时,格式控制部分应规定小数点后的位数, 如scanf("%4.2f",&f);C、B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");D、D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);19. fwrite函数的一般调用形式是(C).A、fwrite(fp,count,size,buffer);B、fwrite(buffer,count,size,fp);C、fwrite(buffer,size,count,fp);D、fwrite(fp,size,count,buffer);20. 用语句scanf("x=%f,y=%f",&x,&y);使x,y的值均为,正确的输入是(C)A、,B、□C、x=,y=D、x=□y=21. 输入某字符串时,不可使用的函数是(B).A、scanf()B、getchar()C、fread()D、gets()22. 算术运算符、赋值运算符和关系运算符的运算优先级从高到低依次为(B)A、关系运算、赋值运算、算术运算B、算术运算、关系运算、赋值运算C、算术运算、赋值运算、关系运算D、关系运算、算术运算、赋值运算23. 执行以下程序段后,输出结果和a的值是(C).int a=10; printf("%d",a++);A、11 和11B、10 和10C、10 和11D、11 和1024. 在位运算中,操作数每左移一位,其结果相当于(A).A、操作数乘以2B、操作数乘以4C、操作数除以4D、操作数除以225. 下列四个选项中,均是C语言关键字的选项是(C).A、auto enum includeB、signed union scanfC、switch typedef continueD、if struct type26. 以下选项中合法的实型常数是(B).A、B、.2E0C、D、E-327. 设有定义:int a=3,b=4; 执行语句printf("%d,%d",(a,b) ,(b,a));的输出是(C)A、3,3B、3,4C、4,3D、4,428. 关于建立函数的目的,以下正确的说法是(D).A、减少程序文件所占内存B、提高程序的执行效率C、减少程序的篇幅D、提高程序的可读性29. 下列关于单目运算符++、--的叙述中正确的是(D)A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量B、它们的运算对象可以是char型变量、int型变量和float型变量C、它们的运算对象可以是任何变量和常量D、它们的运算对象可以是char型变量和int型变量,但不能是float型变量30. 以下不正确的叙述是(D)A、C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变.B、B)在C程序中,APH和aph是两个不同的变量C、A)在C程序中,逗号运算符的优先级最低D、D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值.31. 在C语言中,char型数据在内存中的存储式是(A)A、ASCII码B、原码C、反码D、补码32. 切换编辑窗和信息窗的命令键是(B).A、F3B、F6C、F9D、F233. 以下正确的描述是(D)A、continue语句的作用是结束整个循环的执行B、在循环体内使用break语句或continue语句的作用相同C、从多层循环嵌套中退出时,只能使用goto语句D、只能在循环体内和switch语句体内使用break语句34. 以下叙述中正确的是(D).A、在程序的一行上可以出现多个有效的预处理命令行B、在以下定义中C R 是称为"宏名"的标识符#define C R 045C、使用带参的宏时,参数的类型应与宏定义时的一致D、宏替换不占用运行时间35. double x;scanf("%lf",&x);不可以赋值给x变量的常量是(A).A、"abc"B、123C、100000D、A'36. 打开文件时,方式"w"决定了对文件进行的操作是(C).A、只读盘B、追加写盘C、只写盘D、可读可写盘37. 在C语言中,合法的长整型常数是(A)A、0LB、216DC、324562&D、496271038. 若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32) (D)A、A)4B、B)16C、D)52D、C)3239. 一个C程序的执行是从(C).A、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B、本程序的main函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到main函数结束D、本程序文件的第一个函数开始,到本程序main函数结束40. C语言的if语句嵌套时,if与else的配对关系是(A).A、每个else总是与它上面的最近的没有配对的if配对B、每个else总是与最外层的if配对C、每个else与if的配对是任意的D、每个else总是与它上面的if配对【程序设计】--------------------------------------------------1.题目:编写函数fun,求任一整数m的n次方。
国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1(总分:68.00,做题时间:90分钟)一、选择题(总题数:34,分数:68.00)1.结构化程序设计的基本原则不包括()。
(分数:2.00)A.多态性√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2.在面向对象方法中,不属于"对象"基本特点的是()。
(分数:2.00)A.一致性√B.分类性C.多态性D.标识唯一性解析:解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。
所以选择A)。
3.面向对象方法中,继承是指()。
(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制√解析:解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。
广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
4.结构化程序所要求的基本结构不包括()。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:解析:只有B)选项369可以用无符号整数来表示和存储。
A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。
选项D)是一个整数集合得用数组来存储。
6.下列选项中不属于结构化程序设计原则的是()。
(分数:2.00)A.可封装√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2024年6月青少年软件编程C语言等级考试试卷一级真题

2024年6月青少年软件编程C语言等级考试试卷一级真题分数:100 题数:51.奇迹(20分)。
经典电影《阿甘正传》有句台词,说:(奇迹每天都发生)。
本题就请你直接在屏幕上输出这句话。
输入:本题没有输入。
输出:在一行中输出。
样例输入:无。
样例输出:2.九牛一毛(20分)。
这是一道脑筋急转弯题:猪肉一斤15元,鸡肉一斤20元,那么一毛钱能买多少头牛?答案是:9——因为“九牛一毛”。
本题就请你按照这个逻辑,计算一下N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。
输入:输入在一行中给出一个不超过1000的正整数N,即以“元”为单位的货币量。
输出:在一行中顺序输出N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。
三个数字都取整数,其间以1个空格分隔,行首尾不得有多余空格。
样例输入:样例输出:3.题A除以B(20分)。
给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入:输入在第一行给出两个整数A和B(-100≤A,B≤100),数字间以空格分隔。
输出:在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为“Error”。
输出的商应保留小数点后2位。
4.进化论(20分)。
在“一年一度喜剧大赛”上有一部作品《进化论》,讲的是动物园两只猩猩进化的故事。
猩猩吕严说自己已经进化了9年了,因为“三年又三年”。
猩猩土豆指出“三年又三年是六年呐”。
本题给定两个数字,以及用这两个数字计算的结果,要求你根据结果判断,这是吕严算出来的,还是土豆算出来的。
输入:输入第一行给出一个正整数N,随后N行,每行给出三个正整数A、B和C。
其中C不超过10000,其他三个数字都不超过100。
输出:对每一行给出的三个数,如果C是A×B,就在一行中输出“Lv Yan”;如果是A+B,就在一行中输出“Tu Dou”;如果都不是,就在一行中输出“zhe du shi sha ya!”。
《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 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+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
c语言试卷和答案1

s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
void main()
{ long fun (long number);
printf(“%ld\n”, fun(-974));
}
long fun(long number)
(5) 运算符 “+”不能作为单目运算符。
(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。
(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(8) 表达式!!6的值是6。
(9) 表达式~(~2<<1)的值是5。
(28)str[k]=str[k]-‘A’+ ‘a’
4.(29)ss=s
(30)s-ss
四、程序阅读题
程序1 1 # 3 # 21 #
程序2 4 # 47 # 479 # -479
程序3 IF YOU FAIL TOP
五、程序设计题(略)
}while(month>=1 || month<=12);
B)do{ scanf(“%d”, &month);
}while(month>=1 && month<=12);
C)do{ scanf(“%d”, &month);
}while(month<1 || month>12);
else
b=3;
printf(“%d”, b);
A)3 B)2 C)1 D)0
C语言试卷含答案

C语言试卷含答案一、单选题(共10题,每题2分,共20分)1. 下列哪个关键字不属于C语言的关键字?A. ifB. floatC. breakD. while答案:B2. 在C语言中,下列运算符中优先级最高的是:A. +B. *C. =D. &答案:B3. 以下哪种循环结构在循环体执行前就对循环条件进行判断?A. for循环B. while循环C. do-while循环答案:C4. 以下哪个函数库是用来进行数学运算的?A. stdio.hB. string.hC. math.hD. ctype.h答案:C5. 下列哪个运算符是用来进行指针访问的?A. *B. &C. .D. :答案:C6. 以下哪种数据类型可以存储整数和小数?A. intB. floatC. char答案:B7. 下列哪个函数可用于将字符串转换为整数?A. atoi()B. itoa()C. atof()D. sprintf()答案:A8. 在C语言中,以下哪个关键字用于定义一个常量?A. constB. staticC. externD. volatile答案:A9. 以下哪种运算符是用来进行逻辑或操作的?A. &&B. ||C. !答案:B10. 下列哪个文件打开模式适用于读写模式?A. "r"B. "w"C. "a"D. "r+"答案:D二、填空题(共5题,每题4分,共20分)1. C语言中,sizeof运算符返回的是所指数据类型的__________。
答案:字节大小2. 下列语句中,会将字符串s2的内容复制到字符串s1中的是__________。
strcpy(s1, s2);答案:strcpy3. 在C语言中,字符串使用__________来表示。
答案:字符数组4. 在C语言中,__________是用于声明变量的关键字。
C语言试卷1(含答案)

putchar (j);
}
3、下面的函数功能是求x的y次方。
double fun(double x,int y)
{ int i;
double z=1;
for(i=1;i<=y;i++)
z=z*x;
return z;
}
4、先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将下标输出,若不存在这样的元素,则打印”Not found!”标志。
printf("\"%s\"\n",ch[1]);
}
A. "AAAA"B. "BBB"C. "BBBCC"D. "CC"
9.在C语言中,形参的缺省存储类是。
A. autoB. registerC. staticD. extern
10.以下程序的输出结果是。
main()
{ char x=040;
printf("%0\n",x<<1);
27.对break语句和continue语句,下面说法不正确的是。
A.break语句强制中断当前循环,退出循环体
B.break语句只能用在三条循环语句的循环体或switch语句中
C. 在没有循环情况下,continue语句能用在switch语句中
D.continue语句不能退出循环体
28.c语言允许if-else语句可以嵌套使用,规定else总是与配对。
A.&aa[0]+1B.&aa[1]C..&aa[0]++D. aa+1
C语言试题及答案

(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个 C 语言程序是由( c ) 组成的。
A.主程序 B.子程序 C.函数 D.过程2.转换说明符%x 的输出形式是( c ) 。
A.十进制 B.八进制 C.十六进制 D.二进制3.若 a 、b 均为 int 型变量,且 a=100,则关于循环语句 for(b=100;a!=b;++a,++b) printf (“ ------------“) ;的正确说法是( c ) 。
A.循环体只执行一次 B.死循环C.循环体一次也不执行 D.输出 -----------4.若 x、y、z 均为 int 型变量,则执行下列语句后的 z 值为 (a ) 。
x=1;y=2;z=3;z=(x>y)?z :y ;z =(z<y)?z:x;A. 1 B. 4 C. 2 D. 35.下面标识符中,合法的用户标识符为( d ) 。
A. P#Ad B. 12a C. char D. _int6.…A‟ + 3 的结果是( B ) 。
A.‟A‟ B.‟D‟的 ASCⅡ码 C. 65 D. 37.语句 char str[20];说明 str 是一个字符串,最多能表示 ( B ) 。
A. 20个字符 B. 19个字符 C. 18个字符 D. 21个字符8.将 int 型变量 n 转换成 float 型变量的方法是 ( B ) 。
A. float n B. (float)n C. float(n) D. 21个字符9.以下不正确的描述是 ( C ) 。
A.使用 while 和 do-while 循环时,循环变量初始化的操作应在循环语句之前完成B. while 循环是先判断表达式后执行循环体语句C. do-while 和 for 循环均是先执行循环体语句,后判断表达式D. for 、while 、do-while 循环中的循环体均可以由空语句构成10.在循环中使用 break 语句的功能是( A ) 。
c语言考试题1

第6题 (2.0分) 题号:309
当a=3,b=2,c=1;时,执行以下程序段后 b=【1】.
if(a>b) a=b;
if(b>c) b=c;
else c=b;
c=a;
答案:
1). 1
第7题 (2.0分) 题号:311
The result of the following program segment is【1】.
/********** End **********/
}
main()
{
int a[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
int i,*p=&i;是正确的C说明。
答案:Y
━━━━━━━━━━━━━━━━━
三、单项选择 共20题 (共计40分)
━━━━━━━━━━━━━━━━━
第1题 (2.0分) 题号:89
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:a3_b3
B:void
C:_123
A:0
B:1
C:2
D:-1
答案:B
第7题 (2.0分) 题号:670
以下正确的说法是()。
A:定义函数时,形参的类型说明可以放在函数体内
B:return后边的值不能为表达式
C:如果函数值的类型与返回值类型不一致,以函数值类型为准
D:如果形参与实参类型不一致,以实参类型为准
IN=fopen("4.IN","r");
C语言程序设计试卷1

《C语言》考试试卷I一、单选题:(每小题2分,共40分)1、在C语言中,正确的int类型的常数是()A、32768;B、0x5g ;C、038;D、12 ;2、下列常数中不能作为C的常量的是()A、0xa5B、2.5e-5C、3e2D、05823、在C语言中,若一个i nt型数据在内存中占2个字节,则unsi gned int 型数据的取值范围是()A、0~25B、0~65535C、0~32767D、-32768~327674、以下说法中正确的是()A、C语言程序总是从第一个定义的函数开始执行。
B、C语言程序总是从main()函数开始执行。
C、C语言程序中的main()函数必须放在程序的开始部分。
D、一个C函数中只允许一对花括号。
5、C语言中用语结构化程序设计的三种基本结构是()A、顺序结构、选择结构、循环结构;B、if ,switch ,break ;C、for ,while ,d o—while;D、if ,for ,continue ;6、对C语言中标识符,下列说法正确的是()A、标识符中的第一个字母必须是字母。
B、标识符中的第一个字母必须是下划线。
C、标识符的前两个字母必须是字母和下划线。
D、标识符中的第一个字母必须是字母或下划线。
7、已知int i;float f;正确的语句是()A、(int f)% iB、int (f% i )C、int (f % i)D、(int)f % i8、以下错误的转义字符是()A、'\\'B、' \'C、' \81'D、' \0 '9、以下正确的描述是( )A、只能在循环体内和switch语句体内使用break语句。
B、在循环体内使用break语句或continue语句的作用相同。
C、continue语句的作用是结束整个循环的执行。
.D、break语句能够一次从多层循环嵌套中退出。
10、C语言对嵌套if语句的规定是:else总是与()A、其之前最近的if配对B、第一个if配对C、缩进位置相同的if配对D、其之前最近的且尚未配对同一层内的if配对11、在定义int a[5][6];后,第10个元素是()A、a[2][5]B、a[2][4]C、a[1][3]D、a[1][5]12、以下不正确的定义语句是()A、double x[5]={2.0 , 4.0 , 6.0 , 8.0 , 10.0 };B、int y[5]={0 , 1 , 3 , 5 , 7 , 9 };C、char c1[ ]={ '1' , '2', '3' , '4' , '5' };D、char c2[ ]={'\x10' , '\xa' , '\x8' };13、下面()是错误的if语句(设int x,a,b;)A、if(a=b)x++;B、if(a=<b)x++;C、if(a-b)x++;D、if(x)x++;14、能正确表示a和b同时为正或同时为负的逻辑表达式是( )A、(a>=0‖b>=0)&&(a<0‖b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、(a>0&&b>0)||(a<0&&b<0)15、下面有关for循环的正确描述是:()A、for循环只能用于循环次数已经确定的情况。
C语言试卷一(含答案)

16、以下程序的输出结果是( ) A)#*#*# B)##### C)***** D)*#*#* main( ) { int i; for(i=1;i<6;i++) { if(i%2) {printf("#");continue;} printf("*"); } printf("\n"); } 17、已知有声明语句 char s1[10]= "abcde",s3[10];以下语句中能将 s1 中存储的字符 串和 s2 中存储的字符串正确交换的是 。 A.s3=s1,s1=s2,s2=s3; B.s3[0]=s1[0],s1[0]=s2[0],s2[0]=3[0]; C.strcpy(s3[0],s1[0]),strcpy(s1[0],s2[0]),strcpy(s2[0],s3[0]); D.strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3); 18、若有声明语句 int a[10],b[3][3];则以下对数组元素赋值的操作中,不会出现越界访 问的是 ___ 。 A.a[-1]=1 B.a[10]=0 C.b[3][0]=0 D.b[0][0]=0 19、以下是一个自定义函数的头部,其中正确的是 。 A.int fun(int a[ ],b) B.int fun(int a[ ],int a) C.int fun(int *a,int b) D.int fun(char a[ ][ ],int b) 20、下列 4 个函数中,( )能实现交换变量值的功能。 A) void fun_a(int x,int y) B) void fun_b(int *x,int *y) { int *p; { int *p; *p=x;x=y;y=*p;} *x=*y;*y=*x;} C) void fun_c(int *x,int *y) D) void fun_d(int x,int y) { *x=*x+*y; { int p; *y=*x-*y; p=x;x=y;y=p; *x=*x-*y;} } 二、填空题(每空2分,共 26 分) 1、已知:int x=3;则
C语言程序设计--试卷1

}s;
C、struct ABC
{ double a;
char b[10];
}
ABC s;
D、typedef ABC
{ double a;
char b[10];
}
ABC s;
7. 以下程序的输出结果是______。
main()
main() {
char str[12]={'s','t','r','i','n','g'};
printf("%d/n",strlen(str) );
}
A、6
B、7
C、11
D、12
10. 请读程序:
#include <stdio.h>
func(int a, int b){
main()
{
union{
unsigned char c;
unsigned int i[4];
}z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%c/n",z.c);
}
的输出是______。
A、6
B、9
C、0
D、3
{ int a=-1,b=1, k;
if((++a<0)&&!(b--<=0))
printf("%d %d/n",a,b);
else
c语言试卷1及答案

1.有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } }
执行后输出结果是 2.有以下程序
A. 5.5
B. 5.0
C. 6
D. 6.0
13. 在 C 语言中,5 种基本数据类型的存储空间长度的排列顺序为( )。
A.char < int < long <= float < double
B. char = int < long <= float < double
C. char < int < long = float = double
main() { int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是
3.有以下程序
main() { int a=5,b=4,c=3,d=2;
if(a>b>c) printf("%d\n",d);
else if((c-1>=d)==1) printf("%d\n",d+1);
班级:
姓名:
诸城市技工学校 2014―2015 学年第二学期期末考试
《C 程序设计》试题
命题:郭霞 审核:卢桂强
c语言试题1有答案

一、单项选择题(每题2分,15小题,共30分)1.C语言源程序是由组成的。
A) 过程B) 函数C) 子程序D) 主程序和子程序2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是。
A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性3.以下选项中合法的C语言标识符是。
A) long B) _2Test C) 3Dmax D) A.dat4.下列转义字符中错误的是。
A) '\000'B) '\14'C) '\x111'D) '\2'5.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A) 语法错误B) f为5.0C) f为0.0D) f为2.06.若变量a,b已经正确定义并赋值,符合C语言语法的表达式是。
A) a2+b B) a*a+b C) a×a+b D) a·a+b7.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c 的值为2,则正确的数据输入方式是。
A) 132↙B) 1,3,2↙C) a=1b=3c=2↙D) a=1,b=3,c=2↙8.若 w=1,x=2,y=3,z=4,则条件表达式w<x ?w : y<z ?y : z的值是。
A) 4B) 3C) 2D) 19.设int a=0,b=0,m=0,n=0;则执行(m = a==b)||(n = b==a)后m和n的值分别是。
A) 0,0 B) 0,1 C) 1,0 D) 1,110.以下for循环的执行次数是。
for (x=0,y=0; (y=123)&&(x<4);x++) ;A) 无限循环B) 循环次数不定C) 4次D) 3次11.下面程序段的输出结果是。
C语言试卷1

1.有如下程序#include <stdio.h>int runc(int a,int b){ return(a+b); }void main( ){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是 ( D )A) 12 B) 13 C) 14 D) 152.在C语言中,函数的数据类型是指( A )。
A.函数返回值的数据类型 B.函数形参的数据类型C. 调用该函数时的实参的数据类型D.任意指定的数据类型3.以下只有在使用时才为该类型变量分配内存的存储类说明是(B)A) auto和 static B) auto和 registerC) register和 static D) extern和 register4.以下正确的字符常量是(B)(A)“x”(B)…W‟(C)…‟(D)…XYZ‟5.有如下程序段int a=14,b=15,x;char c=‟A‟;x=(a﹠﹠b)﹠﹠(c〈‟B‟);x的值为(D)A) ture B) false C) 0 D) 16.以下程序的输出结果是(D)main(){ int a=3;printf("%d\n",(++a-=a*a) );}A) -6 B)12 C) 0 D) -127.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)A) INPUT x、y、z; B) scanf("%d%d%d",﹠x,﹠y,﹠z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",﹠x,﹠y,﹠z);8.有以下程序main( ){int x=102,y=012;printf("%2d,%2d\n",x,y);} 执行后输出结果是(C)A)10,012 B)102,12 C)102,10 D)0102,109.对下面的程序,说法正确的是( D )#include "stdio.h"void main(){int x=3,y=0,z=0;if(x=y+z)printf("* * * *\n");else printf("# # # #\n");}A) 有语法错误不能通过编译 B) 输出* * * *。
C语言一级考试题及答案

C语言一级考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. =答案:C3. 在C语言中,下列哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. C语言中,下列哪个选项不是合法的变量名?A. _myVarB. 2ndVarC. var_nameD. var$name答案:D5. 下列哪个选项不是C语言中的控制语句?A. ifB. forC. gotoD. switch答案:D6. 在C语言中,下列哪个选项用于定义一个指针?A. int *p;B. int *p[];C. int (*p)[10];D. int p[10];答案:A7. 在C语言中,下列哪个选项不是合法的数组定义?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2};D. int arr[] = {1};答案:C8. C语言中,下列哪个选项不是合法的函数定义?A. void func();B. int main() { return 0; }C. int func(int x) { return x; }D. int main(int x) { return x; }答案:D9. 下列哪个选项不是C语言中的预处理指令?A. #includeB. #defineC. #ifD. switch答案:D10. 在C语言中,下列哪个选项不是合法的注释?A. // This is a single-line commentB. /* This is a multi-line comment */C. /* This is a multi-line commentD. // This is another single-line comment答案:C二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是____。
C语言三分试卷之1

试卷(1)12.2.1 选择题(本大题共40个选项,【1】~【40】每个选择项1.5分,共60分)1. 下列属于C语言的是【1】。
【1】A)printf("%d\n",a) B)#include <stdio.h>C)a=b;b=c;c=a; D)/* This is a program */2. 设有语句int x=2,y=3;,则表达式x=(y==3)的值是【2】。
【2】A)0 B)1 C)2 D)33. C语言的下列运算符中,优先级最高的运算符是【3】。
【3】A)++ B)+= C)|| D)!=4. 已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是【4】。
main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}【4】A)67,D B)C,D C)C,68 D)67,685. 在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是【5】,这四种类型的转换规律是【6】。
【5】A)int B)char C)unsigned D)long【6】A)int->unsigned->long->char B)char->int->long->unsignedC)char->int->unsigned->long D)char->unsigned->long->int6. 若a、b均为整数且a≠b,b≠0,则表达式a/b*b+a%b的值是【7】。
C语言一级考试题及答案

C语言一级考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. classB. functionC. defD. void答案:D2. 在C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A3. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. stringD. char答案:C4. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[10] = "Hello";B. char str = "Hello";C. int str[10] = "Hello";D. string str = "Hello";答案:A5. C语言中,以下哪个选项是正确的二维数组定义方式?A. int array[3][4];B. int array[][];C. int array[3][];D. int array[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 答案:A6. 在C语言中,以下哪个关键字用于声明一个指针?A. refB. ptrC. pointerD. *答案:D7. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct {int id;char name[50];} Student;C. struct Student {int id;string name;};D. struct {int id;char name;};答案:A8. 在C语言中,以下哪个选项是正确的枚举类型定义方式?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} Color;C. enum Color {0, 1, 2};D. enum {Red, Green, Blue} color;答案:A9. C语言中,以下哪个选项是正确的宏定义方式?A. #define PI 3.14159B. define PI 3.14159C. #define PI = 3.14159D. define PI = 3.14159答案:A10. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)printf("Positive");elseprintf("Not positive");B. if x > 0printf("Positive");elseprintf("Not positive");C. if (x > 0)printf("Positive");else if x > -1printf("Not positive");D. if (x > 0)printf("Positive");else if (x > -1)printf("Not positive");答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 有下列程序#include <stdio.h>main(){union{int k;char i[2];}*s,a;s=&a;s->i[0]=0x39;s->i[1]=0x38;printf("%x\n",s->k);}输出结果是A)3839 B)3938 C)380039 D)3900382. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A)100<空格>765.12<回车> B)i=100,f=765.12<回车>C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车>3. 设已有定义: char *st="how are you"; 下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11]; strcpy(a, st);D) char a[], *p; strcpy(p=&a[1],st+2);4. 设j为int型变量,则下面for循环语句的执行结果是for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}A)6 3 B)7 4 C)6 2 D)7 35. 以下程序的输出结果是main(){int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k=p[i]*2;printf("%d\n",k);}A)20 B)21 C)22 D)236. 若有以下说明:int w[3][4]o={{0,1},{2,4},{5,8}};int(*p)[4]=w;则数值为4的表达式是A) *w[1]+1 B) p++,*(p+1)C) w[2][2] D) p[1][1]7. 若k是int型变量,且有下面的程序片段:k=-3if(k<=0) printf("####")else printf("&&&&");上面程序片段的输出结果是A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果8. 以下程序运行后,输出结果是main( )1{int y=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y\2;} while(y>1=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n")}A)10000 B)10010 C)00110 D)101009. 以下叙述中不正确的是A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量10. 请读程序:#include<stdio.h>func( int a, int b){ int c;c=a+b;return c;}main(){ int x=6, y=7, z=8, r;r=func( x--,y==,x+y),z--);printf("%d\n",r);}上面程序的输出结果是A) 11 B) 20 C) 21 D) 3111. 以下程序的输出结果是# include <stdio.h>main(){ int a=2,c=5;printf("a=%%d,b=%%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d12. 设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3C) 2 D) 113. 执行以下程序后,y的值是main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++) y + = * (p + x);printf("%d\n",y); }A) 17 B) 18 C) 19 D) 2014. 下面四个选项中,全是不合法的用户标识符的是:A、A P_0 doB、float la0 _AC、b-a goto intD、_123 temp INT15. 以下程序的输出结果是main( ){ int n=4;while(n--)printf("%d ",--n);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 016. 设有如下的变量定义:int i=8,k,a,b;unsinged long w=5double x=1,42,y=5.2则以下符合C语言语法的表达式是A)a+=a-=(b=4)*(a=3) B)x%(-3); C)a=a*3=2 D)y=float(i)17. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是2main( ){ int x;scanf("%d",&x);if(x + + >5) printf("%d",x);else printf("%d\n",x - -); }A) 7和5 B) 6和3 C) 7和4 D) 6和418. 若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为A)float B)int C)char D)double19. 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是A) *((*prt+1) [2]) B) *(*(p+5))C) (*prt+1)+2 D) *(*(a+1)+2)20. 给出以下定义:char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};则正确的叙述为A)数组X和数组Y等价B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度二、填空题(每空1分,共10分。
)1. 假定p所指对象的值为25,p+1所指对象的值为46,则执行"(*p)++;"语句后,p所指对象的值为___________。
2. 如果变量定义有:int a=9,c=8;则表达式(――a!=c++)?――a:++c 的值为________。
3. 假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为__________。
4. 已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf("%d,%d,%d",&i,&j,&f)调用语句的数据输入形式是__________5. 若x=5,y=10,则x>y和x<=y的逻辑值分别为________和_______。
6. C语言提供三种逻辑运算符,按优先级高低它们分别是_________,________,_________。
7. 空字符串的长度是__________。
三、判断题(本题共10道小题,共10分。
)1. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数()2. 函数中的局部变量都是动态存储()3. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式()4. 函数的定义可以嵌套,但函数的调用不可以嵌套()5. do-while循环中,根据情况可以省略while()6. 形参时虚拟的,不占用存储单元( )7. 用户若需要调用标准库函数,调用前必须重新定义()8. 全局变量使得函数之间的"耦合性"更加紧密,不利于模块化的要求()9. 在实际编程中,do-while循环完全可以用for循环替换()10. if语句,switch语句可以嵌套,而且嵌套的层数没有限制()四、程序填空(本题共5道小题,每题4分,共20分。
)1. 编写程序,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
#include <stdio.h>main(){int n,s,sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){____________;for(int j=1;j<=i;j++)_____________;sum+=s;}printf("%d",sum);}2. 若输入3个整数3,2,1,则下面程序的输出结果是____________。
3#include<stdio.h>void sub( n,uu)int n, uu[ ];{ int t;t=uu[n--]; t+=3*uu[n];n=n++;if(t>=10){ uu[n++]=t/10; uu[n]=t%10;}else uu[n]=t;}main( ){ int i, n, aa[10]={0,0,0,0,0,0}scanf( "%d%d%d",&n,&aa[0],&aa[1]);for(i=1; i<n; i++) sub(i,aa);for(i=0; i<=n; i++) printf("%d",aa[i]);printf("\n");}3. 以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data 域不放数据,表空的条件是ph->next = = NULL).#include<stdio.h>struct list { int data;struct list *next;};_________creatlist(){ struct list *p,*q,*ph; int a;ph=(struct list *) malloc(sizeof(struct list));p=q=ph; printf("Input an integer number,enter -1 to end:\n");scanf("%d",&a):while(a!=-1){ p=(struct list *)malloc(sizeof(struct list));p->data=a;q->next=p;_________=p;scanf("%d",&a); }p->next='\0';return(ph);}main(){ struct list *head; head=creatlist();}4. 以下函数的功能是:求x的y次方,请填空。