c语言程序设计课程模拟试卷及答案(2015年秋季用,最新)
C语言及程序设计课程试卷答案

C语言及程序设计课程试卷答案在这里,我提供一份C语言及程序设计课程试卷的答案,总字数超过题目要求的1800字。
答案按照题目的序号和分值进行陈述,以便您更好地阅读。
一、选择题(每题5分,共20题,共100分)1. D2. A3. B4. C5. D6. C7. B8. A9. D 10. B11. C 12. A 13. D 14. B 15. C16. A 17. B 18. D 19. C 20. A二、判断题(每题5分,共10题,共50分)1. 错2. 对3. 对4. 错5. 错6. 对7. 错8. 错9. 对 10. 对三、填空题(每题10分,共5题,共50分)1. const2. printf3. NULL4. continue5. break四、编程题(共3题,每题100分,共300分)题目一:```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {if (i % 3 == 0 && i % 5 == 0) { continue;}sum += i;}printf("Sum: %d\n", sum);return 0;}```题目二:```c#include <stdio.h>int fibonacci(int n) {if (n == 0) {return 0;}else if (n == 1) {return 1;}else {return fibonacci(n - 1) + fibonacci(n - 2); }}int main() {int n, i;printf("Enter the number of terms: ");scanf("%d", &n);for (i = 0; i < n; i++) {printf("%d ", fibonacci(i));}return 0;}```题目三:```c#include <stdio.h>int main() {char string[100];int i, count = 0;printf("Enter a string: ");fgets(string, 100, stdin);for (i = 0; string[i] != '\0'; i++) {if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || string[i] == 'o' || string[i] == 'u' || string[i] == 'A' || string[i] == 'E' || string[i] == 'I' || string[i] == 'O' || string[i] == 'U') {count++;}}printf("Number of vowels: %d\n", count);return 0;}```以上就是C语言及程序设计课程试卷的答案部分。
c语言模拟考试试题及答案

c语言模拟考试试题及答案C语言模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable#name答案:B2. 下列哪个选项是C语言中的关键字?A. charB. variableC. ifD. string答案:C3. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. float var;C. double var;D. char var;答案:A5. 下列哪个选项是C语言中的控制结构?A. switch-caseB. if-elseC. for-loopD. All of the above答案:D6. 在C语言中,哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. None of the above答案:D(注:C语言标准库中没有sum()函数)7. 以下哪个选项是C语言中数组的正确声明方式?A. int array[10] = {1, 2, 3};B. int [10] array = {1, 2, 3};C. Both A and BD. None of the above答案:C8. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A9. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. int function(int a; int b) { ... }C. int function(int a, int b) { ... }D. int function(int a, b) { ... }答案:C10. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用____关键字可以定义一个函数。
c语言程序设计考试试题及答案

c语言程序设计考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言可以用于系统程序设计答案:B2. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项不是C语言中合法的变量名?()A. _intB. 2ndC. intD. var_name答案:C4. C语言中,用于表示逻辑“与”操作的运算符是()。
A. &&B. &&C. |D. ||答案:A5. 在C语言中,下列哪个选项是正确的字符串声明?()A. char str[] = "Hello, World!";B. char str[10] = "Hello, World!";C. char str[] = {"Hello, World!"};D. char str[20] = "Hello, World!";答案:A6. 下列哪个函数用于将浮点数转换为字符串?()A. sprintfB. atoiC. itoaD. atof答案:A7. C语言中,用于定义一个指针变量的关键字是()。
A. intB. floatC. charD. void答案:C8. 在C语言中,下列哪个选项不是合法的数组声明?()A. int arr[5];B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2, 3};D. int *arr = {1, 2, 3};答案:D9. 下列关于C语言函数的描述中,正确的是()。
A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 所有选项都正确答案:D10. 在C语言中,用于控制程序流程的关键字是()。
C语言模拟试卷及答案

C语言程序设计模拟试题一、单项选择题(请把答案填在每个题的括号内,每小题2分,共30分)1.对于一个正常运行的C程序,以下叙述中正确的是()A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序中的第一个函数开始,程序的最后一个函数中结束2.设变量均已正确定义,若要通过scanf("%d%c,%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符'X'和'Y'。
以下所示的输入形式中正确的是()(注:口代表空格字符)A)10X,20Y<回车>B)10口X20口Y<回车>C)10口X<回车>20口Y<回车>D)10X<回车>20Y<回车>3.以下定义语句中正确的是()A)char a='A'b='B';B)float a=b=10.0;C)int a=10,*b=&a;D)float*a,b=&a;4.下列选项中,不能用作标识符的是()A)_main B)a1C)int_2_D)2_int_5.下列选项中,合法的C语言关键字是()A)VAR B)cher C)integer D)default6.为表示关系z≥y≥x,应使用C语言表达式()A)(z>=y>=x)B)(z>=y)AND(y>=x)C)(z>=y)&&(y>=x)D)(z>=y)&(y>=x)7.有以下程序段:int k=0,a=1,b=2;k=a<b?b:a;执行该程序段后,k的值是()A)3B)2C)1D)08.C语言中用于结构化程序设计的三种基本结构是()A)if、switch、break B)顺序结构、选择结构、循环结构C)for、while、do-while D)break、for、continue9.若int i;则语句:for(i=2;i==0;)printf("%d",i--);的循环执行次数是()A)无限次B)0次C)1次D)2次10.在循环结构的循环体中执行break语句,其作用是()A)结束本次循环,进行下次循环B)继续执行break语句之后的循环体中各语句C)跳出该循环体,提前结束循环D)终止程序运行11.已定义int a[10],i;以下能正确为a数组元素进行赋值的语句是()A)for(i=0;i<10;i++)scanf("%d",a[i]);B)for(i=0;i<=10;i++)scanf("%d",a[i]);C)for(i=0;i<10;i++)scanf("%d",&a[i]);D)for(i=1;i<=10;i++)scanf("%d",&a[i]);12.以下能正确定义二维数组的是()A)int a[][3];B)int a[][3]={{2,3},{4}};C)int a[][3]={};D)int a[2][3]={{1},{2},{3,4}};13.s1和s2已正确定义并分别指向两个字符串。
c语言程序设计考试题库及答案

c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2.2 C语言中,用于输入数据的库函数是______。
答案:scanf2.3 C语言中,用于输出数据的库函数是______。
答案:printf3. 简答题3.1 简述C语言中数组的定义方式。
答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。
例如,定义一个整型数组可以写作:int arrayName[arraySize];。
3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
定义指针的示例:int *ptr; 这里ptr是一个整型指针。
4. 编程题4.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```4.2 编写一个C语言函数,实现字符串反转的功能。
答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。
C语言程序设计试卷(含答案)

.2015年春季学期《C 语言程序设计》试卷A一.选择(每道小题2分,合计30分)1、以下选项中合法的标识符是( )。
A)1_1B)1-1C)_11D)1_ _2、若函数中有定义语句:int k;,则( )。
A)系统将自动给k 赋初值0 B)这时k 中的值无定义 C)系统将自动给k 赋初值-1D)这时k 中无任何值3、以下选项中,能用作数据常量的是( ) 。
A)o115B)0118C)1.5e1.5D)115L4、设有定义:int x=2;,以下表达式中,值不为6的是( )。
A)x*=x+1 B)X++,2*x C)x*=(1+x)D)2*x,x+=25、程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是( )。
A)123.141593 B)12 3.141593C)12,3.141593D)123.14159306、把2进制数10000111101转化为十进制数为( )。
A)1083B)1084 C)1085D)10867、以下是if 语句的基本形式: if(表达式) 语句 其中"表达式"( )。
A)必须是逻辑表达式B)必须是关系表达式 C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式8、有以下程序#include <stdio.h> main(){ int x; scanf("%d",&x);if(x<=3); elseif(x!=10) printf("%d\n",x);}程序运行时,输入的值在哪个范围才会有输出结果( )。
A)不等于10的整数 B)大于3且不等于10的整数 C)大于3或等于10的整数D)小于3的整数9、有以下程序#include <stdio.h> main(){ int a=1,b=2,c=3,d=0; if (a==1 && b++==2)if (b!=2||c--!=3) printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c);} 程序运行后输出结果是( )。
C语言程序设计模拟试卷(2)

C语⾔程序设计模拟试卷(2)模拟试卷⼀⼀、选择题(每题1分,共15分) 在每⼩题列出的四个选项中只有⼀个是符合题⽬要求的,请在正确答案前点选,错选或未选均不得分。
1. 以下选项中不合法的⽤户标识是:正确答案A. _123B. printfC. A$D. Dim2. 在C 语⾔中,char 型数据在内存中的存储形式是:正确答案A. 补码B. 反码C. 原码D. ASCII 码正确答案:D3. 设x,y,z 为int 型变量,且x=3,y=4,z=5 ,则下⾯表达式中值为0 的是:正确答案A. 'x'&&'y'B. !((xC. x||y+z&&y-zD. x<=y正确答案:B4. 若有定义:int a=2,b=4,c; 执⾏语句c=a/b+2.6 ;后,c 的值为:正确答案A. 2.6D. 2正确答案:D5. 设a 为整型变量,不能确定表达数学关系10正确答案A. 10B. a==11|| a==12|| a==13|| a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)正确答案:C6. 若i 、j 已定义为int 型,则以下程序段中语句printf( “ %d ” ,i*j); 的执⾏次数是:for (i=3;i>0;i-- )for (j=0;j<4;j++ )printf( “ %d ” ,i*j);正确答案A. 12B. 15C. 16D. 20正确答案:A7. 若有输⼊语句“ scanf( "%d%d%d",&x,&y,&z); ”,则不能使x值为5,y 值为6,z值为7的输⼊是:正确答案A. 5 ,6 ,7< 回车>B. 5 6 7< 回车>C. 5 6 < 回车> 7< 回车>D. 5< 回车> ,6< 回车> ,7< 回车>正确答案:A8.执⾏以下程序段后,x ,y 和z 的值分别是:int x=10,y=20,z=30;if(x>y) z=x; x=y; y=z;正确答案:B9. 以下程序段x = -1;do{ x=x*x;} while(!x); 正确的说法是:正确答案A. 死循环B. 循环⼀次C. 循环两次D. 有语法错正确答案:B10. 以下正确的函数声明形式是:正确答案A. double fun(int x ,int y)B. double fun(int x ;int y)C. double fun(int x ,int y) ;D. double fun(int x ,y) ;正确答案:C11.若有定义char ch[8] ,则以下表达式中不能代表数组元素ch[1] 的地址是:正确答案A. &ch[0]+1B. &ch[1]C. &ch[0]++D. ch+1正确答案:C12. 若有初始化语句“ int a[5]={1,2,3,4,5}; ”,值为4 的表达式是:正确答案:C13. 若已有以下函数定义:float fun(float a, int b){int c;c=(int)a%b;return c;}则主调函数中语句“ printf("%f",fun(fun(fun(34,7),4),3)); ”的输出结果是:正确答案A. 2.000000B. 因参数类型与形参类型不⼀致,函数调⽤产⽣错误C. 2D. 因变量c 的类型与fun 函数的返回值类型不符,故输出值为随机值正确答案:A14. 已知:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+2 ;则值为3 的表达式是:正确答案A. (*p)++B. *p++C. *++pD. ++*p正确答案:B15. 以下可作为函数fopen 中第⼀个参数的正确格式是:正确答案A. c:\user\file.txtB. "c:\user\file.txt"C. "c:\\user\\file.txt"⼆、填空题(共10题)1. 字符串存储时,末尾被系统⾃动加上字符。
c语言及程序设计试题及答案

c语言及程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. &&答案:C3. 在C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable_2D. variable$2答案:C5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "r+"答案:D6. C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C7. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. ==答案:B8. C语言中,哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. 在C语言中,以下哪个选项是正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. //* This is a single line comment */D. /* This is a multi-line comment */答案:A10. C语言中,以下哪个关键字用于定义一个指针?A. ptrB. refC. *D. ^答案:C二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的正确语法是:int ________;答案:变量名2. 要将一个字符变量赋值为'A',正确的赋值语句是:char ch =________;答案:'A'3. 在C语言中,使用 ________ 函数可以输出格式化的字符串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题(每小题2分,共20分)1. C语言源程序文件的缺省扩展名为( c )。
2.设x和y均为逻辑值,则x && y为真的条件是x和y( 均为真 )。
3. 在下列的符号常量定义中,正确的定义格式为( #define M3 10 )。
4. for循环语句能够被改写为( while )语句。
5. 在下面的一维数组定义中,错误的定义格式为( int a[]; )。
6.在下面的函数原型声明中,存在语法错误的是(int AA(int a; int b;); )。
7. 假定a为一个数组名,则下面存在错误的表达式为( *a++ )。
8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为( x=*pa+3 )。
9.字符串"y=%d\n"的长度为__5__。
10. 向一个二进制文件中写入信息的函数为(fwrite() )。
二、填空题(每小题2分,共26分)1.执行“printf("%c",'A'+3);”语句后得到的输出结果为_D_2.短整数类型short int的长度为23. 用类型关键字表示十进制常数3.26f的类型为_float4. 假定y=10,则表达式++y*3的值为_335. 逻辑表达式(x==0 && y>5)的相反表达式为_(x!=0 || y<=5) 或:(x || y<=5)6.若x=5,y=10,则x!=y的逻辑值为_1(真,true)7. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为_608. 使用“typedef char BB[10][50];”语句定义_BB为含有10行50列的二维字符数组类型。
9. 字符串"a:\\xxk\\ff"的长度为910.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为_4611. 假定一个数据对象为int*类型,则指向该对象的指针类型为_int**12.假定一个结构类型的定义为“struct A{int a,b; struct A* c;};”,则该类型的理论长度为__1213. 假定要访问一个结构对象x中的数据成员a,则表示方式为_x.a三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1. #include<stdio.h>void main(){ int x=3; switch(2*x+1) { case 4: printf("%d ",x); break;case 7: printf("%d ",2*x); break;case 10: printf("%d ",3*x); break;default: printf("%s ","default"); } }输出结果:62. #include<stdio.h>void main() { int f=1,i; for(i=1;i<4;i++) f=3*f+1;printf("%d ",f); }输出结果:403. #include<stdio.h>void main() { int a[8]={12,39,26,41,55,63,72,40};int i, c=0; for(i=0; i<8; i++)if(a[i]%3==0) c++;printf("%d\n",c);}输出结果:44. #include<stdio.h>#include<string.h>void main( ) {char s[]="123456";int i, n=strlen(s) ;for(i=0; i<n/2; i++) {char c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;} printf("%s\n",s); }输出结果:6543215. #include<stdio.h>int LB(int *a, int n) { int *p,s=1;for(p=a; p<a+n; p++) s*=*p;return s; }void main() {int a[]={1,2,3,4};printf("%d\n", LB(a,sizeof(a)/sizeof(int)));// sizeof(a)为求出数组a所占用的存储空间的字节数}输出结果:24四、写出下列每个函数的功能(每小题6分,共12分)1. #include<stdio.h>int SA(int a, int b) {if(a>b) return 1;else if(a==b) return 0;else return -1;}函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。
2. void Output(struct IntNode *f) //f为单链表的表头指针{if(!f) return;while(f) {printf("%d ",f->data);f=f->next;}printf("\n");}函数功能:遍历输出由f所指向的单链表中每个结点的值。
五、按题目要求编写程序(每小题6分,共12分)1. 完善下面程序,该程序功能是从键盘上输入10个整数到一维数组a[10]中,然后按照下标从大到小的次序输出数组a[10]中的每个元素值,元素值之间用一个空格分开。
#include<stdio.h>void main(){ int a[10],i; //用i作为循环变量printf("从键盘输入10个整数: \n");//向下补充程序内容,用两个for循环实现printf("\n"); }for(i=0; i<10; i++) scanf("%d",&a[i]); //3分for(i=9; i>=0; i--) printf("%d ",a[i]); //6分注:第1行中的&a[i]也可替换为a+i2. 编写一个主函数,假定a和b的取值范围为:6≤a≤50,10≤b≤30,求出满足不定方程3a+2b=120的全部整数组解。
如(20,30)就是其中的一组解。
void main(){int a,b; //1分for(a=6;a<=50; a++) //2分for(b=10;b<=30;b++) //3分if(3*a+2*b==120) printf("(%d, %d)\n",a,b); //6分一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( main )。
2.每个C语言程序文件的编译错误分为( 2 )类。
3. 字符串"a+b=12\n"的长度为( 7 )。
4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( if )语句。
5. 在下面的do-while循环语句中,其循环体语句被执行的次数为( 10 )。
int i=0; do i++; while(i<10);6. 将两个字符串连接起来组成一个字符串时,选用的函数为( strcat() )。
7. 若用数组名作为函数调用的实参,传递给形参的是(数组的首地址)。
8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( 16 )个字节。
9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为( char *p=s; )。
10. 从一个数据文件中读入以换行符结束的一行字符串的函数为( fgets() )。
11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( exe )。
12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( 156 )。
13. 带有随机函数调用的表达式rand()%20的值在( 0~19 )区间内。
14. for循环语句“for(i=0; i<n; i+=2) S;”中循环体S语句被执行的次数为( (n+1)/2 )。
15. 在下列的字符数组定义中,存在语法错误的是( char a[10]='5'; )。
16. B 17. B 18. A 19. D 20. C21. D 22. A 23. A 24. B 25. C26. C 27. C 28. B 29. A 30. D16. 若有一个函数原型为“double *function()”,则它的返回值类型为(实数指针型)。
17. 在C语言中,所有预处理命令都是以( # )符号开头的。
18. 假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为( 40 )。
19. 若要使p指向二维整型数组a[10][20],则p的类型为( int(*)[20] )。
20. 表示文件结束符的符号常量为( EOF )21. 程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( 空格或回车 )符号作为分隔符。
22. 逻辑表达式(x>0 && x<=10)的相反表达式为( x<=0 || x>10 )。
23. 当处理特定问题时的循环次数已知时,通常采用( for )循环来解决。
24. 假定i的初值为0,则在循环语句“while(i<n) {s+=i*i; i++;}”中循环体被执行的总次数为( n )。
25. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( 6 )。
26. 在下列选项中,不正确的函数原型格式为( int Function(a); )。
27. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( 4 )个字节。
28. 假定有定义为“int m=7, *p;”,则给p赋值的正确表达式为( p=&m )。