c语言易出错误的是什么,非计算机专业学生C语言编程易出的错误解析

0引言目前,在许多高等院校,计算机专业和非计算机专业的学生都开设《C程序设计》课程,C语言具有功能丰富,表达能力强、使用灵活、应用面广、目标程序效率高、可移植性好、能对硬件直接进行操作等优点。但相对于其他高级语言,C语言要难学一些。例如C语言的数据类型较多,语法规则多,而且输入,输出语句比较繁琐,指针部分非常灵活,难以掌握等。非计算机专业C语言程序设计理论课和上机课时较少,VisualC++系统不够严谨和完善,学生在初学上机调试程序过程中,常常找不出程序中的错误,本文对学生易出现的错误加以归纳、分析,供初学者参考。1输入语句的错误(1)错误语句:scanf("%d,%d",a,b);正确语句:scanf("%d,%d",&a,&b);此语句本意是为a,b两个整型变量输入数值,地址运算符“&”常常漏掉,&a,&b分别指a,b在内存中的地址,上面scanf函数的意义按a,b在内存的地址将a,b的值存进去。(2)错误的语句:scanf("%d,%dn",&a,&b);正确的语句:scanf("%d,%d",&a,&b);scanf函数中不能使用换行符“n”。(3)错误语句:charstr[10];scanf("%s",str[10]);用scanf函数输入字符串数组,地址列表应是用数组名,即字符串的首地址。系统会自动分配连续的存贮单元,存入输入的字符串。正确语句:charstr[10];scanf("%s",str);或用gets函数:charstr[10];gets(str);2标点符号错误下列是求n!的错误程序段:t=1;for(i=0;ivoidconvert(inta[3][3]){inti,j,t;for(i=0;i<3;i++)for(j=i+1;j<3;j++)t=a[i][j];//错误部分,漏掉大括号a[i][j]=a[j][i];a[j][i]=t;}voidmain(){inti,j,array[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&array[i][j]);convert(array);printf("转置矩阵是:n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",array[i][j]);printf("n");}}正确的程序为:#includevoidconvert(inta[3][3])

{inti,j,t;for(i=0;i<3;i++)for(j=i+1;j<3;j++){t=a[i][j];//此三个语句,交换数组两个元素的值a[i][j]=a[j][i];//是符合语句,应用{}括起来。a[j][i]=t;}}voidmain(){inti,j,array[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&array[i][j]);convert(array);printf("转置矩阵是:n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",array[i][j]);printf("n");}}5字符串数组的错误利用getchar()函数输入一个字符串并输出。#include#includevoidmain(){chars[20];inti;for(i=0;i<20;i++){s[i]=getchar();if(s[i]=='n')break;}i=0;while(s[i])putchar(s[i++]);put

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值